C语言各章习题集(6)

2025-08-15

A. 0 B.1 C.TRUE D. FALSE 7. 若有以下程序段

int x=20; printf(“%d\\n”,~x) ;

则执行以上语句后的输出结果是( )。

A. 02 B. -20 C. -21 D. -11 8. 若有以下程序段

char x=3,y=6,z ; z = x^y<<2 ;

则执行以上语句后,z的值是( ) 。

A.00010100 B.00011011 C.0001100 D.00011000 9. 设位段的空间分配由右到左,则以下程序的运行结果是( )。

struct packed

{ unsigned a : 2 ; unsigned b : 3 ; unsigned c : 4 ; int i ;} data ; main ( )

{ data.a=8 ; data.b=2 ;

printf(“%d\\n”,data.a+data.b) ; }

A.语法错 B.2 C.5 D.10 10. 设有以下说明

struct packed

{ unsigned one:1 ; unsigned two:2 ; unsigned three:3 ; unsigned four:4 ; } data ;

则以下位段数据的引用中不能得到正确数值的是( )。

A.data.one=4 B.data.two=4 C.data.three=2 D.data.four=1

二. 填空题

1. 若有运算符<<,sizeof,^,&=,则按优先级由高到低排列为 。

2. 设有char a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第1和第7位(右起为第0位),则

b的二进制数是 。

3. 测试char型变量a第五位是否为1的表达式是 。

4. 把int型变量low中的低字节及变量high中的高字节放入变量s中的表达式

是 。 5. 以下函数:

unsigned getbits(unsigned x ,unsigned p, unsigned n) { x = ((x<<(p+1-n) & ~((unsigned)~0>>n) ; return (x) ; }

若调用此函数时x=0115032, p=7, n=4, 则函数返回值是 。 6. 若x=0123,则表达式(5+(int)(x))&(~2)的值是 。

三. 程序分析题

1. # define F(y) 15>>y

# define PRINT(a) printf(″﹪d″,a) main() { PRINT(F(2)); } 2. #include

main()

{ int i,j; i=j=20; i++; j--; printf(\3. int fun(unsigned x) { int b;

for (b=0; x!=0; x&=x-1) b++;

return b;

}

main() { printf(\4. #include main()

{ int a=40,b=60; a=a^b; b=a^b; a=a^b; printf(\5. #include void fun(int n)

{ unsigned m=0x8000; int i,j; for (i=0; i<16; i++) {

printf(\ if (i==7) printf(\ m>>=1; } }

main()

{ fun(97); } 6. #include main()

{ struct bit {unsigned b0:1,b1:1,b2:1,b3:1,b4:1,b5:1,b6:1,b7:1;} *p; char s[]=\ while (s[i]!=NULL) { p=(struct bit*)s[i];

sum=p->b0+p->b1+p->b2+p->b3+p->b4+p->b5+p->b6; printf(\ i++; } }

四. 编程题

1. 编写一个函数,对一个unsigned int 变量取出它的奇数位(即从右边起第1,,3,5,7,??,15

位)。

2. 编一函数用来实现左右循环移位。函数名为move,调用方法为move(value,n);其中value为要循环移

位的数,n为移位的位数。如果n<0表示左移,n>0表示右移,n=0表示不移位。 3. 编写一个函数,给出一个数的原码,得到该数的补码。

第 13 章

一. 选择题

文件

1. 将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是

( )。 A. 2和2 B. 2和5 C. 5和2 D. 5和5 2. 若执行fopen函数时发生错误,则函数的返回值是( )。

A.地址值 B.0 C.1 D.EOF

3. 若要用fopen函数打开一个新的二进制文件,该文件既要能读也能写,则文件打开方式字符串应是

( )。

A.”ab+” B.”wb+” C.”rb+” D.”ab” 4. 利用fseek函数可实现的操作是( )。

A. 改变文件的位置指针 B.文件的顺序读写 C. 文件的随机读写 D.以上答案均正确

5. 函数ftell(fp)的作用是( )。

A.得到流式文件中的当前位置 B.移动流式文件的位置指针 C.初始化流式文件的位置 D.以上答案均正确

二. 填空题

1. C语言流式文件的两种形式是 和 。

2. C语言打开文件的函数是 ,关闭文件的函数是 。

3. 按指定格式输出数据到文件中的函数是 ,按指定格式从文件输入数据的函数

是 ,判断文件指针到文件末尾的函数是 。

4. 输出一个数据块到文件中的函数是 ,从文件中输入一个数据块的函数

是 ;输出一个字符串到文件中的函数是 ,从文件中输入一个字符串的函数是 。

5. feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为 ,否则为 。 6. 在C语言中,文件的存取是以 为单位的,这种文件被称作 文件。

三. 程序填空题

1. 以下程序的功能是将文件file1.c的内容输出到屏幕上并复制到文件file2.c中。 #include main ( )

{ FILE ;

fp1=fopen(“file1.c”,”r”); fp2=fopen(“file2.c”,”w”); while (!feof(fp1)) putchar(getc(fp1));

while (!feof(fp1)) putc( ); fclose(fp1); fclose(fp2) ; }

2. 下面程序的功能是将由命令行给出的某源程序文件加行号显示出来(行号从1开始)。 #include

main(int argc,char *argv[]) { FILE *in;

char line[81]; int row;

if ( ) { printf(\exit(1); }

if ((in=fopen(argv[1],\

printf(\

row=0;

while ( fgets(line,81,in)!= ) { printf(\ }

; }

四. 程序编写

1. 统计一个文本文件中数字、空格、字母出现的次数,以及文件的字节数,并将结果输出,文本文件

名由命令行给出。

2. 有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),

计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“Stud”中。 3. 编写一个程序并取名test.c,统计该文件中出现”if”,”while”,”for”的次数。


C语言各章习题集(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第十章 地基岩体稳定性分析

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219