《北华大学C语言题库精简打印版(全).pdf》由会员分享,可在线阅读,更多相关《北华大学C语言题库精简打印版(全).pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北华大学 C语言题库精简打印版(全)一、判断题-正确篇1.字符常量的长度肯定为1.Y 2.在调用函数时,实参把值传送给对应位置上的形参,形参的值不能传给实参.Y 3.在程序中凡是以#号开始的语句行都是预处理命令行Y 4.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量.Y 5.在程序中,APH 和 aph 是两个不同的变量.Y 6.在 Turbo C 中,int 型数据在内存中占2个字节.Y 7.在 C 语言中 8.9e1.2 是不正确的实型常量.Y 8.在 C语言中,变量必需先定义后使用.Y 9.在 C语言中,5种基本数据类型的存储空间 长 度 的 排 列 顺 序 为:ch
2、arintlong int=floatdouble.Y 10.在 C 语言的函数中,可以有也可以没有形参 Y 11.在 C 语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套Y 12.在 C语言程序设计中,/*和*/之间的内容是 C语言的注释Y 13.在 C 程序中,逗号运算符的优先级最低.Y 14.在 C程序中,j+;是一条赋值语句.Y 15.在C 语 言 中,此 定 义 和 语 句 是 合 法的:enum aa a=5,b,cbb;bb=(enum aa)5;Y 16.用 fopen(file,r+);打开的文件file可以进行修改.Y 17.一个字符变量只能存储一个字符.Y 18.一
3、个指针变量只能指向同一类型变量.Y 19.一个C 程序必须由一个或一个以上的函数组成.Y 20.也可用其它编辑软件创建ASCII数据文件用在 C程序中.Y 21.位段定义中允许长度为零的无名字段.Y 22.同一数组的元素在内存中存储是连续存放的,占有连续的存储单元.Y 23.数组说明int a33=1,2,3,4,5;是正确的.Y 24.数-32100 可以赋值给int 型和 long int型变量.Y 25.设 x、t 均为int 型变量,则执行语句x=10;t=x&xj);是正确的.Y 55.int i,*p=&i;是正确的C说明.Y 56.int a34=1,5,9;它的作用是将数组各行
4、第一列的元素赋初值,其余元素值为 0.Y 57.int*p6;定义了 6个下标变量的整型指针.Y 58.fseek()函数一般用于二进制文件.Y 59.for(i=4;i1;i-)for(j=1;ji;j+)putchar(#);输出为#.Y 60.do-while 循环是先执行循环体语句,后判断表达式的值.Y 61.C语言中,文件由字符(字节)序列组成.Y 62.C 语言规定,函数返回值的类型是由在定义该函数时所指定的函数类型所决定的.Y 63.C 语言程序中,当调用函数时实参和形参各占一个独立的存储单元Y 64.char c;c=getchar();该程序段的功能是将用户从键盘输入的字符赋
5、给变量c.Y 65.char*s1=hello,*s2;s2=s1;是正确的.Y 66.char(*p)6;若 p值为 1000,则 p+;后 p值为 1006.Y 67.a=(b=4)+(c=6)是一个合法的赋值表达式.Y 68.0 x173 是正确 的十六进制常数.Y 69.#define 和 printf 都不是 C语句.Y 判断题-错误篇70.执行表达式(int)i 后,i 的类型一定变为整型.N 71.在一个 C程序中,main 函数必须出现在所有函数之前.N 72.在 C 语言中,为句构成的循环,while 后一对圆括号中表达式的值应该是1.N 73.在 C 语言中,调用函数必须在
6、一条独立的语句中完成.N 74.在 C 程序中,每行中只能写一条语句.N 75.在 C 程序中,赋值运算符的优先级最低.N 76.语 句printf(%f%,1.0/3);输 出 为0.333333.N 77.与if(E)语句中的(E)等价的表达式是(E=0).N 78.用户定义的函数也可调用main 函数.N 79.以下各数均不是合法的八进制数:256、03A2、-0127.N 80.已知 ch是字符型变量,则 ch=;是正确的赋值语句.N 81.一 个变 量可 以同 时被 定义 为多 种 类型.N 82.一个 include 命令可以指定多个被包含的文件.N 83.数组说明int a33=
7、1,2,3,4,5,6,7;是正确的.N 84.数组定义int a10;占内存10 个字节.N 85.数组定义int a(10);是正确的.N 86.若有宏定义:#define S(a,b)t=a;a=b;b=t由于变量t 没定义,所以此宏定义是错误的.N 87.若 i=3,则 printf(%d,-i+);输出的值为-4.N 88.若 a 是实型变量,在执行了a=5;后,a 将变为整型变量.N 89.若 a和 b的类型相同,在执行了 a=b;后,b中的值将丢失.N 90.任何结构体类型的变量都可以互相赋值.N 91.枚举类型的数据与字符串在使用上相同.N 92.结构体类型只有一种.N 93.
8、将函数 fun 的入口地址赋给指针变量p的语句是p=fun();N 94.函 数的 定义 和函 数的 调用 均可 以 嵌套.N 95.函数 strlen(ASDFGn)的值是 7.N 96.定义结构体的保留字是struc.N 97.调用scanf()函数进行字符数组输入时,空格和换行符都可以作为字符串的一部分而能读入.N 98.当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值.N 99.程序中的变量代表内存中的一个存储单元,它的值不可以随时修改.N 100.参加位运算的数据可以是任何类型的数据.N 101.static char str=China;没有定义数组元素个数
9、.N 102.sqrt(m)是求 m 平方的函数.N 103.inta=3.1,5.8,6.7,-3.6,i;for(i=0;ij);j+;else i+;是正确的.N 106.int a23;按照它在内存的排列次序,a数组的所有元素是a00、a10、a01、a11、a02、a12.N 107.int a10=0,1,2,3,4,5,6,7,8,9,*p=a;则p+5 相当于 a5.N 108.if 语句后面的控制表达式只能使用关系表达式或逻辑表达式.N 109.if(strcmp(temp,str)0)中的条件是当字符串 temp 大于字符串str为真时.N 110.if(j=0)i+;el
10、se i-;i的值为 11.N 111.for(m=22;m1000;m+)if(m%3=0&m%7!=0)break;是当 m 能被 3整除或 m 不能被 7 整除时,结束本次循环进入下次循环.N 112.for(i=0,k=-1;k=1;k+,i+)printf(*n);循环体一次也不执行.N 113.C 语言中字符型、整型、实型都能用八进制表示.N 114.C 语言中的文件类型只有文本文件一种.N 115.C 语言中的文件类型只有二进制文件一种.N 116.C语言的 if 语句嵌套时,if 与 else的匹配关系是每个else与 if 的匹配是任意的.N 117.C 程序中有调用关系的所
11、有函数必须放在同一个源程序文件中.N 118.continue 语句不只用于循环语句中.N 119.char a10=abcdefg;printf(%6sn,a);只输出前六个字符.N 120.char*s;*s=H;是正确的.N 121.#include stdio.h 是每个程序中必须写的.N 二、选择题 A 篇1.以下数据中,不正确的数值或字符常量是(A).(A).c(B).66(C).0 xaa(D).50 2.设 j和 k都是 int 类型,则 for 循环语句:for(j=0,k=0;j=9&k!=876;j+)scanf(%d,&k);(A)(A).最多执行10 次(B).最多执
12、行9 次(C).是无限循环(D).循环体一次也不执行3.char a1=abc,a280=1234;将 a1 串连接到 a2 串后面的语句是(A).(A).strcat(a2,a1);(B).strcpy(a2,a1);(C).strcat(a1,a2);(D).strcpy(a1,a2);4.以下正确的说法是:在 C语言中(A).(A).实参和与其对应的形参各占用独立的存储单元(B).实参和与其对应的形参共占用一个存储单元(C).只有当实参和与其对应的形参同名时才共占用存储单元(D).形参是虚拟的,不占用存储单元5.下列字符序列中,是 C 语言保留字的是(A).(A).sizeof(B).i
13、nclude(C).scanf(D).sqrt 6.以下选项中,与 k=n+完全等价的表达式是(A).(A).k=n,n=n+1(B).n=n+1,k=n(C).k=+n(D).k+=n+1 7.在位运算中,操作数每左移一位,其结果相当于(A).(A).操作数乘以2(B).操作数除以2(C).操作数除以4(D).操作数乘以4 8.以下程序的运行结果是(A).main()int n;for(n=1;nb)a=b;if(ac)a=c;则a 的值为(A).(A).1(B).2(C).3(D).不一定10.下列定义数组的语句中正确的是(A).(A).#define size 10 char str1s
14、ize,str2size+2;(B).char str;(C).int num10;(D).int n=5;int ann+2;11.C语言中运算对象必须是整型的运算符是(A).(A).%=(B)./(C).=(D).=12.C语言中while 和 do-while 循环的主要区别是(A).(A).do-while 的循环体至少无条件执行一次(B).while 的循环控制条件比do-while 的循环控制条件更严格(C).do-while 允许从外部转到循环体内(D).do-while 的循环体不能是复合语句13.16.在 C 语言中,形参的缺省存储类别是(A).(A).auto(B).reg
15、ister(C).static(D).extern 14.从键盘上输入某字符串时,不可使用的函数是(A).(A).getchar()(B).gets()(C).scanf()(D).fread()15.以下数据中,不正确的数值或字符常量是(A).(A).8.9e1.2(B).10(C).0 xff00(D).82.5 16.以下不是无限循环的语句为(A).(A).for(y=0,x=1;x+y;x=i+)i=x;(B).for(;x+=i);(C).while(1)x+;(D).for(i=10;i-)sum+=i;17.while(fabs(t)=1e-5&t=-1e-5(B).fabs(t
16、)1e-5&!s/10(C).fabs(t)y)z=x;else z=y;return(z);(A).45(B).27(C).18(D).72 30.设有以下语句,若 0k4,下列选项中对字符串的非法引用是(A).char str42=aaa,bbb,ccc,ddd,*strp4;int j;for(j=0;j4;j+)strpj=strj;(A).strp(B).strk(C).strpk(D).*strp 31.9 以下语句中,循环次数不为10 次的语句是(A).(A).for(i=1;i10;i+);(B).i=1;doi+;while(i0)-i;(D).i=1;m:if(i=10)i
17、+;goto m;32.14 以下不能正确进行字符串赋初值的语句是(A).(A).char str5=good!;(B).char str=good!;(C).char*str=good!;(D).char str5=g,o,o,d;33.18 若有 double*p,x10;int i=5;使指针变量 p 指向元素x5的语句为(A).(A).p=ξ(B).p=x;(C).p=xi;(D).p=&(x+i)34.C语言的 if 语句嵌套时,if 与 else的配对关系是(A).(A).每个 else 总是与它上面的最近的并且尚未与其他else匹配的 if 配对(B).每个 else总是与
18、最外层的if 配对(C).每个 else与 if 的配对是任意的(D).每个 else总是与它上面的if 配对35.16 以下正确的函数定义形式是(A).(A).double fun(int x,int y)(B).double fun(int x;int y)(C).double fun(int x,int y);(D).double fun(int x,y);36.18 经过下列的语句int j,a10,*p;定义后,下列语句中合法的是(A)(A).p=a+2;(B).p=a5;(C).p=a2+2;(D).p=&(j+2);37.17enum a sum=9,mon=-1,tue;2ch
19、ar a=This is a program.;输出前 5 个字符的语句是(A).(A).printf(%.5s,a);(B).puts(a);(C).printf(%s,a);(D).a5*2=0;puts(a);选择题 B篇38.C语言源程序的基本单位是(B).(A).过程(B).函数(C).子程序(D).标识符39.下列程序的输出结果是(B).main()char c1=97,c2=98;printf(%d%c,c1,c2);(A).97 98(B).97 b(C).a 98(D).a b 40.下列四个选项中,均是C 语言关键字的选项是(B).(A).auto enum include
20、(B).switch typedef continue(C).signed union scanf(D).if struct type 41.以下能对二维数组a 进行正确初始化的语句是(B).(A).int a2=1,0,1,5,2,3;(B).int a3=1,2,3,4,5,6;(C).int a24=1,2,3,4,5,6;(D).int a3=1,0,1,1,1;42.以下对枚举类型名的定义中正确的是(B).(A).enum a=sun,mon,tue;(B).enum a sun=9,mon=-1,tue;(C).enum a=sun,mon,tue;(D).enum a sun,m
21、on,tue;43.以下选项中合法的用户标识符是(B).(A).long(B)._2Test(C).3Dmax(D).A.dat 44.以下叙述中正确的是(B).(A).C 语言的源程序不必通过编译就可以直接运行(B).C 语言中的每条可执行语句最终都将被转换成二进制的机器指令(C).C 源程序经编译形成的二进制代码可以直接运行(D).C 语言中的函数不可以单独进行编译45.以下叙述中不正确的是(B).(A).一个好的程序应该有详尽的注释(B).在 C程序中,赋值运算符的优先级最低(C).在 C程序中,j+;是一条赋值语句(D).C 程序中的#include 和#define 均不是C语句46
22、.若 有 以下 程 序 段:int a=3,b=4;a=ab;b=ba;a=ab;则执行以上语句后,a 和b 的值分别是(B).(A).a=3,b=4(B).a=4,b=3(C).a=4,b=4(D).a=3,b=3 47.9.假定所有变量均已正确定义,下列程序段运行后x 的值是(B).k1=1;k2=2;k3=3;x=15;if(!k1)x-;else if(k2)x=4;else x=3;(A).14(B).4(C).15(D).3 48.给数组 a 的所有元素分别赋值为1、2、3、,的语句是(B).(A).for(i=1;i11;i+)ai=i;(B).for(i=1;i11;i+)ai
23、-1=i;(C).for(i=1;i11;i+)ai+1=i;(D).for(i=1;ib?a+:b+,a+b的值是(B).(A).7(B).8(C).9(D).2 57.以下程序段的输出结果为(B).for(i=4;i1;i-)for(j=1;jc)b=a;a=c;c=b;则 c的值为().B(A).1(B).2(C).3(D).不一定80.以下不正确的定义语句是(B).(A).double x5=2.0,4.0,6.0,8.0,10.0;(B).int y5=0,1,3,5,7,9;(C).char c1=1,2,3,4,5;(D).char c2=x10,xa,x8;81.C 语言规定:
24、简单变量做实参时,它和对应形参之间的数据传递方式是(B).(A).地址传递(B).单向值传递(C).由实参传给形参,再由形参传回给实参(D).由用户指定的传递方式82.以下程序的输出结果是(B).main()char s=123,*p;p=s;printf(%c%c%cn,*p+,*p+,*p+);(A).123(B).321(C).213(D).312 83.以下语句中,不能实现回车换行的是(B).(A).printf(n);(B).putchar(n);(C).fprintf(stdout,n);(D).fwrite(n,1,1,stdout);选择题 C篇84.设 C 语言中,int 类
25、型数据占2 个字节,则 long 类型数据占(C).(A).1 个字节(B).2 个字节(C).4 个字节(D).8 个字节85.以下叙述正确的是(C).(A).在 C 程序中,main 函数必须位于程序的最前面(B).C程序的每行中只能写一条语句(C).C语言本身没有输入输出语句(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误86.以下数值中,不正确的八进制数或十六进制数是(C).(A).0 x16(B).016(C).-16(D).0 xaaaa 87.已 知x=43,ch=A,y=0;则表 达式(x=y&chB&!y)的值是(C).(A).0(B).语法错(C).1(D).
26、假88.能将高级语言编写的源程序转换为目标程序的是(C).(A).链接程序(B).解释程序(C).编译程序(D).编辑程序89.以下关于运算符优先顺序的描述中正确的是(C).(A).关系运算符算术运算符赋值运算符逻辑运算符(B).逻辑运算符关系运算符算术运算符赋值运算符(C).赋值运算符逻辑运算符关系运算符算术运算符(D).算术运算符关系运算符赋值运算符b?a:b;printf(%d,t);(A).7(B).9(C).63(D).49 98.下面四个选项中,均是不合法的用户标识符的选项是(C).(A).A P_0 do(B).float la0 _A(C).b-a goto int(D)._1
27、23 temp int 99.在 C 语言中,调用函数除函数名外,还必须有(C).(A).函数预说明(B).实际参数(C).()(D).函数返回值100.下面判断正确的是(C).(A).char*a=china;等价于char*a;*a=china;(B).char str10=china;等价于charstr10;str=china;(C).char*s=china;等价于char*s;s=china;(D).char c4=abc,d4=abc;等价于char c4=d4=abc;101.char*s1=hello,*s2;s2=s1;则(C)(A).s2指向不确定的内存单元(B).不能访
28、问 hello(C).puts(s1);与 puts(s2);结果相同(D).s1 不能再指向其它单元102.若 a 是 float 型变量,b 是 unsigned型变量,以下输入语句中合法的是(C).(A).scanf(%6.2f%d,&a,&b);(B).scanf(%f%n,&a,&b);(C).scanf(%f%3o,&a,&b);(D).scanf(%f%f,&a,&b);103.C语言执行程序的开始执行点是(C).(A).程序中第一条可以执行语言(B).程序中第一个函数(C).程序中的main函数(D).包含文件中的第一个函数104.fgets(str,n,fp)函数从文件中读入
29、一个字符串,以下正确的叙述是(C).(A).字符串读入后不会自动加入0(B).fp 是 file 类型的指针(C).fgets函数将从文件中最多读入n-1 个字符(D).fgets函数将从文件中最多读入n 个字符105.若有说明int a34;则对 a数组元素的正确引用是(C).(A).a24(B).a1,3(C).a1+10(D).a(2)(1)106.C程序中的宏展开是在(C).(A).编译时进行的(B).程序执行时进行的(C).编译前预处理时进行的(D).编辑时进行的107.设有说明int(*ptr)M;其中标识符ptr是(C).(A).M 个指向整型变量的指针(B).指向 M 个整型变
30、量的函数指针(C).一个指向具有M 个整型元素的一维数组的指针(D).具有M 个指针元素的一维指针数组,每个元素都只能指向整型量108.若有char a80,*s=a;不正确的输入语句是(C).(A).scanf(%s,s);(B).gets(s);(C).fscanf(stdin,%c,s);(D).fgets(s,80,stdin);109.以下选项中合法的实型常数是(C).(A).5E2.0(B).E-3(C).2(D).1.3E 110.以下常量中,能够代表逻辑真 值的常量是(C).(A).0(B).0(C).0(D).NULL 111.以下标识符中,不能作为合法的C 用户定义标识符的
31、是(C).(A).putchar(B)._double(C).123_(D).INT 112.7经 过 以 下 语 句 定 义 后,表 达 式z+=xy?+x:+y的值为(C).int x=1,y=2,z=3;(A).2(B).3(C).6(D).5 113.8 以下运算符中优先级最低的是(C).(A).&(B).&(C).|(D).|114.char a10;不能将字符串abc存储在数组中的是(C).(A).strcpy(a,abc);(B).a0=0;strcat(a,abc);(C).a=abc;(D).int i;for(i=0;i3;i+)ai=i+97;ai=0;115.在 C 语
32、言中,引用数组元素时,其数组下标的数据类型允许是(C).(A).整型常量(B).整型表达式(C).整型常量或整型表达式(D).任何类型的表达式116.以下各选项企图说明一种新的类型名,其中正确的是(C).(A).typedef v1 int;(B).typedef v2=int;(C).typedef int v3;(D).typedef v4:int;117.9 执行语句for(i=1;i+0|Ey&x!=y);(B).if(x=y)x+=y;(C).if(x!=y)scanf(%d,&x)else scanf(%d,&y);(D).if(x0)puts(s2);(B).if(strcmp(
33、s2,s1)0)puts(s2);(C).if(strcmp(s2,t)0)puts(s2);(D).if(strcmp(s1,t)0)puts(s2);139.下列选项中正确的语句组是(D).(A).char s8;s=Beijing;(B).char*s;s=Beijing(C).char s8;s=Beijing;(D).char*s;s=Beijing;140.以下叙述中错误的是(D).(A).二进制文件打开后可以先读文件的末尾,而顺序文件不可以(B).在程序结束时,应当用fclose函数关闭已打开的文件(C).在利用fread 函数从二进制文件中读数据时,可以用数组名给数组中所有元素
34、读入数据(D).不可以用FILE定义指向二进制文件的文件指针141.以下数组定义中不正确的是(D).(A).int a23;(B).int b3=0,1,2,3;(C).int c100100=0;(D).int d3=1,2,1,2,3,1,2,3,4;142.函数的形式参数隐含的存储类型说明是(D).(A).extern(B).static(C).register(D).auto 143.在定义构造数据类型时,不能(D).(A).说明变量(B).说明存储类型(C).初始化(D).末尾不写分号144.具有相同类型的指针变量p 与数组a,不能进行的操作是(D).(A).p=a;(B).*p=a
35、0;(C).p=&a0;(D).p=&a;145.8.下列运算符中,不属于关系运算符的是(D).(A).(C).=(D).!146.15.以下错误的描述是:函数调用可以(D).(A).出现在执行语句中(B).出现在一个表达式中(C).做为一个函数的实参(D).做为一个函数的形参147.18.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(D).(A).p=q;(B).*p=*q;(C).n=*q;(D).p=n;148.下列字符序列中,可用作C 标识符的一组字符序列是(D).(A).S.b,sum,average,_above(B).class,day,lotus_1
36、,2day(C).#md,&12x,month,student_n!(D).D56,r_1_2,name,_st_1 149.double x;scanf(%lf,&x);不可以赋值给x 变量的常量是(D).(A).123(B).100000(C).A(D).abc 150.若 int类型数据占两个字节,则下列语句的输出为(D).nt k=-1;printf(%d,%un,k,k);(A).-1,-1(B).-1,32767(C).-1,32768(D).-1,65535 151.若 k,g 均为 int 型变量,则下列语句的输出为(D).k=017;g=111;printf(%dt,+k);
37、printf(%xn,g+);(A).15 6f(B).16 70(C).15 71(D).16 6f 152.以下不能正确定义二维数组的选项是(D).(A).int a22=1,2;(B).int a2=1,2,3,4;(C).int a22=1,2,3;(D).int a2=1,2,3,4;153.下列定义数组的语句中不正确的是(D).(A).static int a23=1,2,3,4,5,6;(B).static int a23=1,4,5;(C).static int a3=1,4;(D).static int a=1,2,3,4,5,6;154.在定义构造数据类型时,不能(D).(
38、A).说明变量(B).说明存储类型(C).初始化(D).末尾不写分号155.下面说明不正确的是(D).(A).char a10=china;(B).char a10,*p=a;p=china(C).char*a;a=china;(D).char a10,*p;p=a=china 156.若 a=1,b=2 则 a|b 的值是(D).(A).0(B).1(C).2(D).3 157.下列运算符中是C 语言关系运算符的是(D).(A).(B).!(C).&(D).!=158.C语言中要求对变量作强制定义的主要理由是(D).(A).便于移植(B).便于写文件(C).便于编辑预处理程序的处理(D).便
39、于确定类型和分配空间159.以下不符合C 语言语法的赋值语句是(D).(A).j+;(B).j=j=5;(C).k=(2*4,k*4);(D).y=float(j);160.在 C 语言中,if 语句后的一对原括号中,用以决定分支的流程的表达式(D).(A).只能用逻辑表达式(B).只能用关系表达式(C).只能用逻辑表达式或关系表达式(D).可用任意表达式161.在 C 语言中,一维数组的定义方式为:类型说明符数组名(D).(A).常量表达式 (B).整型表达式 (C).整型常量 或整型表达式 (D).整型常量 162.以下标识符中,不能作为合法的C 用户定义标识符的是(D).(A).For(
40、B).Printf(C).WORD(D).sizeof 163.在 C 语言中,char 型数据在内存中的存储形式是(D).(A).补码(B).反码(C).原码(D).ASCII码164.c 以下对一维整型数组a 的正确说明是(D).(A).int a(10);(B).int n=10,an;(C).int n;scanf(%d,&n);int an;(D).#define SIZE 10(换行)int aSIZE;165.关于指针概念说法不正确的是(D).(A).一个指针变量只能指向同一类型变量(B).一个变量的地址称为该变量的指针(C).只有同一类型变量的地址才能放到指向该类型变量的指针变
41、量之中(D).指针变量可以由整数赋,不能用浮点赋166.以下运算符中,优先级最高的运算符是(D).(A).=(B).!=(C).*(乘号)(D).()167.使用共用体变量,不可以(D).(A).节省存储空间(B).简化程序设计(C).进行动态管理(D).同时访问所有成员168.以下叙述正确的是(D).(A).do-while 语句构成的循环不能用其它语句构成的循环来代替.(B).do-while 语句构成的循环只能用break语句退出.(C).用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环.(D).用 do-while 语句构成的循环,在 while 后的表
42、达式为零时结束循环169.以下程序段char*alp=ABC,DEF,GHI;int j;puts(alp1);的输出结果是(D).(A).A(B).B(C).D(D).DEF 170.在 C语言中,int、char和 short 三种类型数据在内存中所占用的字节数(D).(A).由用用户自己定义(B).均为 2 个字节(C).是任意的(D).由所用机器的机器字长决定171.12 以下定义语句中,错误的是(D).(A).int a=1,2;(B).char*a3;(C).char s10=test;(D).int n=5,an;172.2putchar 函数可以向终端输出一个(D).(A).整
43、型变量表达式值(B).实型变量值(C).字符串(D).字符或字符型变量值173.以下不正确的叙述是(D).(A).在 C 程序中所用的变量必须先定义后使用(B).程序中,APH 和 aph 是两个不同的变量(C).若 a 和 b 类型相同,在执行了赋值语句a=b;后 b 中的值将放入a 中,b 中的值不变(D).当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值174.6 以下程序的输出结果是(D).main()int i,j,k,a=3,b=2;i=(-a=b+)?-a:+b;j=a+;k=b;printf(i=%d,j=%d,k=%dn,i,j,k);(A).i=2,
44、j=1,k=3(B).i=1,j=1,k=2(C).i=4,j=2,k=4(D).i=1,j=1,k=3 175.7 判断 char 型变量 cl 是否为小写字母的正确表达式是(D).(A).a=cl=a)&(cl=cl)|(z=a)&(cl=z)176.10 以下程序的运行结果是(D).main()int i=1,sum=0;while(i10)sum=sum+1;i+;printf(i=%d,sum=%d,i,sum);(A).i=10,sum=9(B).i=9,sum=9(C).i=2,sum=1(D).运行不出结果177.下列关于C 语言数据文件的叙述中正确的是(D).(A).文件由A
45、SCII码字符序列组成,C 语言只能读写文本文件(B).文件由二进制数据序列组成,C 语言只能读写二进制文件(C).文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件(D).文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件178.5C 语言中表达逻辑真值的是(D).(A).T.(B).0(C).True(D).非 0 的数179.20 若调用fputc 函数输出字符成功,则其返回值是(D).(A).EOF(B).1(C).0(D).输出的字符180.10 下面有关for 循环的正确描述是(D).(A).for 循环只能用于循环次数已经确定的情况(B).for 循环是
46、先执行循环循环体语句,后判断表达式(C).在for 循环中,不能用break 语句跳出循环体(D).for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来181.若 char a10;已正确定义,以下语句中不能从键盘上给a 数组的所有元素输入值的语句是(D).(A).gets(a);(B).scanf(%s,a);(C).for(i=0;i10;i+)ai=getchar();(D).a=getchar();182.20fscanf函数的正确调用形式是(D).(A).fscanf(fp,格式字符串,输出表列);(B).fscanf(格式字符串,输出表列,fp);(C).fscanf
47、(格式字符串,文件指针,输出表列);(D).fscanf(文件指针,格式字符串,输入表列);183.7 下列语句的结果是(D).main()int j;j=3;printf(%d,+j);printf(%d,j+);(A).3,3(B).3,4(C).4,3(D).4,4 三、改错1、在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。ai=ai-1;正确答案:ai+1=ai;exit;正确答案:break;2、以下程序的功能是求如下表达式:print(%d,n);正确答案:scanf(“%d”,&n);fun(int n)正确答案:float fun(int n)3、函数fu
48、n 的功能是:根据整型形参m 的值,计算如下公式的值。y-=1/(i*i);正确答案:y-=1.0/(i*i);return m;正确答案:return c;4、函数fun 的功能是:计算并输出该数列的前n项的平方根之和sum,n的值通过形参传入。fun(int n)正确答案:double fun(int n)sum=0.0;正确答案:sum=1.0;for(k=0;k=n;k+)正确答案:for(k=4;k=n;k+)return s0;正确答案:return sum;5、以下程序把一由小到大的有序数列放在a1到 an中,a0用做工作单元,程序把读入的x值插入到a 数组中,插入后,数组中的数
49、仍有序。ai=ai+1;正确答案:ai+1=ai;for(i=0;i=n;i+)正确答案:for(i=1;i=2)|(mc10)正确答案:while(2=k)&(mc10)if(k%13=0)|(k%17=0)正确答案:if(k%17=0)|(k%13=0)19、函数 fun 的功能是:计算正整数num 的各位上的数字之积。scanf(%ld,n);正确答案:scanf(%ld,&n);printf(n%ldn,fun(long n);正确答案:printf(n%ldn,fun(n);22、函数 fun 的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num1 和 num
50、2分别输入49 和 21,则输出的最大公约数为7。r=a/b;正确答案:r=a%b;return a;正确答案:return b;23、在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数 fun 的功能是:计算数组元素中值为正数的平均值(不包括 0)。int sum=0.0;正确答案:double sum=0.0;while(si=0)正确答案:while(si!=0)24、fun 函数的功能是:先从键盘上输入一个3行 3 列矩阵的各个元素的值,然后输出主对角线上的元素之和 sum。a=0;正确答案:sum=0;scanf(%d,aij);正确答案: