C语言 考试题库.docx
- 文档编号:4285425
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:58
- 大小:37.40KB
C语言 考试题库.docx
《C语言 考试题库.docx》由会员分享,可在线阅读,更多相关《C语言 考试题库.docx(58页珍藏版)》请在冰豆网上搜索。
C语言考试题库
1.以下数据中,不正确的数值或字符常量是(A).
(A).c
(B).66
(C).0xaa
(D).50
2.设j和k都是int类型,则for循环语句:
for(j=0,k=0;j<=9&&k!
=876;j++)
scanf("%d",&k);(A)
(A).最多执行10次
(B).最多执行9次
(C).是无限循环
(D).循环体一次也不执行
3.chara1[]="abc",a2[80]="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).include
(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()
{intn;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d",n);
}
}
(A).12457810
(B).369
(C).12
(D).1234567890
9.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(A).
(A).1
(B).2
(C).3
(D).不一定
10.下列定义数组的语句中正确的是(A).
(A).#definesize10charstr1[size],str2[size+2];
(B).charstr[];
(C).intnum['10'];
(D).intn=5;inta[n][n+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).register
(C).static
(D).extern
14.从键盘上输入某字符串时,不可使用的函数是(A).
(A).getchar()
(B).gets()
(C).scanf()
(D).fread()
15.以下数据中,不正确的数值或字符常量是(A).
(A).8.9e1.2
(B).10
(C).0xff00
(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)if(!
s/10)break;循环结束的条件是(A).
(A).t>=1e-5&&t<=-1e-5
(B).fabs(t)<1e-5&&!
s/10
(C).fabs(t)<1e-5
(D).s/10==0
18.以下叙述中正确的是(A).
(A).构成C程序的基本单位是函数
(B).可以在一个函数中定义另一个函数
(C).main()函数必须放在其它函数之前
(D).所有被调用的函数一定要在调用之前进行定义
19.函数rewind的作用是(A).
(A).使位置指针重新返回文件的开头
(B).将位置指针指向文件中所要求的特定位置
(C).使位置指针指向文件的末尾
(D).使位置指针自动移至下一个字符位置
20.C语言程序中,当调用函数时(A).
(A).实参和虚参各占一个独立的存储单元
(B).实参和虚参可以共用存储单元
(C).可以由用户指定是否共用存储单元
(D).计算机系统自动确定是否共用存储单元
21.当定义一个结构体变量时,系统分配给它的内存是(A).
(A).各成员所需内存量的总和
(B).结构中第一个成员所需内存量
(C).结构中最后一个成员所需内存量
(D).成员中占内存量最大者所需的容量
22.下列变量定义中合法的是(A).
(A).short_a=1-.1e-1;
(B).doubleb=1+5e2.5;
(C).longdo=0xfdaL;
(D).float2_and=1-e-3;
23.若有说明语句:
charc='\72';则变量c(A).
(A).包含1个字符
(B).包含2个字符
(C).包含3个字符
(D).说明不合法,c的值不确定
24.结构体类型的定义允许嵌套是指(A).
(A).成员是已经或正在定义的结构体型
(B).成员可以重名
(C).结构体型可以派生
(D).定义多个结构体型
25.先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).
(A).c='a';
(B).c="a";
(C).c="97";
(D).C='97'
26.下列数组说明中,正确的是(A).
(A).staticcharstr[]="China";
(B).staticcharstr[];str="China";
(C).staticcharstr1[5],str2[]={"China"};str1=str2;
(D).staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);
27.若有int*p=(int*)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为(A).
(A).scanf("%d",p);
(B).scanf("%d",&p);
(C).scanf("%d",*p);
(D).scanf("%d",**p);
28.以下叙述中正确的是(A).
(A).C程序中注释部分可以出现在程序中任意合适的地方
(B).花括号"{"和"}"只能作为函数体的定界符
(C).构成C程序的基本单位是函数,所有函数名都可以由用户命名
(D).分号是C语句之间的分隔符,不是语句的一部分
29.执行下面程序后,输出结果是(A).
main()
{inta=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
(A).45
(B).27
(C).18
(D).72
30.设有以下语句,若0 charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4]; intj; for(j=0;j<4;j++) strp[j]=str[j]; (A).strp (B).str[k] (C).strp[k] (D).*strp 31.9以下语句中,循环次数不为10次的语句是(A). (A).for(i=1;i<10;i++); (B).i=1;do{i++;}while(i<=10); (C).i=10;while(i>0){--i;} (D).i=1;m: if(i<=10){i++;gotom;} 32.14以下不能正确进行字符串赋初值的语句是(A). (A).charstr[5]="good! "; (B).charstr[]="good! "; (C).char*str="good! "; (D).charstr[5]={'g','o','o','d'}; 33.18若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为(A). (A).p=&x[i]; (B).p=x; (C).p=x[i]; (D).p=&(x+i) 34.C语言的if语句嵌套时,if与else的配对关系是(A). (A).每个else总是与它上面的最近的并且尚未与其他else匹配的if配对 (B).每个else总是与最外层的if配对 (C).每个else与if的配对是任意的 (D).每个else总是与它上面的if配对 35.16以下正确的函数定义形式是(A). (A).doublefun(intx,inty) (B).doublefun(intx;inty) (C).doublefun(intx,inty); (D).doublefun(intx,y); 36.18经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是(A) (A).p=a+2; (B).p=a[5]; (C).p=a[2]+2; (D).p=&(j+2); 37.17enuma{sum=9,mon=-1,tue};2chara[]="Thisisaprogram.";输出前5个字符的语句是(A). (A).printf("%.5s",a); (B).puts(a); (C).printf("%s",a); (D).a[5*2]=0;puts(a); 选择题B篇 38.C语言源程序的基本单位是(B). (A).过程 (B).函数 (C).子程序 (D).标识符 39.下列程序的输出结果是(B). main() {charc1=97,c2=98; printf("%d%c",c1,c2); } (A).9798 (B).97b (C).a98 (D).ab 40.下列四个选项中,均是C语言关键字的选项是(B). (A).autoenuminclude (B).switchtypedefcontinue (C).signedunionscanf (D).ifstructtype 41.以下能对二维数组a进行正确初始化的语句是(B). (A).inta[2][]={{1,0,1},{5,2,3}}; (B).inta[][3]={{1,2,3},{4,5,6}}; (C).inta[2][4]={{1,2,3},{4,5},{6}}; (D).inta[][3]={{1,0,1}{},{1,1}}; 42.以下对枚举类型名的定义中正确的是(B). (A).enuma={sun,mon,tue}; (B).enuma{sun=9,mon=-1,tue}; (C).enuma={"sun","mon","tue"}; (D).enuma{"sun","mon","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.若有以下程序段: inta=3,b=4;a=a^b;b=b^a;a=a^b;则执行以上语句后,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--; elseif(k2)x=4; elsex=3; (A).14 (B).4 (C).15 (D).3 48.给数组a的所有元素分别赋值为1、2、3、……的语句是(B). (A).for(i=1;i<11;i++)a[i]=i; (B).for(i=1;i<11;i++)a[i-1]=i; (C).for(i=1;i<11;i++)a[i+1]=i; (D).for(i=1;i<11;i++)a[0]=1; 49.C语言中不可以嵌套的是(B). (A).函数调用 (B).函数定义 (C).循环语句 (D).选择语句 50.inta[10]={1,2,3,4,5,6,7,8};int*p;p=&a[5];p[-3]的值是(B) (A).2 (B).3 (C).4 (D).不一定 51.若k为int型变量,则以下程序段的执行结果是(B). k=-8567;printf("|%06D|\n",k); (A).格式描述符不合法,输出无定值 (B).输出为|%06D| (C).输出为|0-8567| (D).输出为|-8567| 52.fseek函数的正确调用形式是(B). (A).fseek(文件类型指针,起始点,位移量) (B).fseek(fp,位移量,起始点) (C).fseek(位移量,起始点,fp) (D).fseek(起始点,位移量,文件类型指针) 53.下列表达式中,可作为C合法表达式的是(B). (A).[3,2,1,0] (B).(3,2,1,0) (C).3=2=1=0 (D).3/2/1/0 54.以下程序的输出结果为(B). main() {inta=1,b=2,c=3,d=4,e=5; printf("%d\n",func((a+b,b+c,c+a),(d+e))); } intfunc(intx,inty) { return(x+y); } (A).15 (B).13 (C).9 (D).函数调用出错 55.以下标识符中,不能作为合法的C用户定义标识符的是(B). (A).a3_b3 (B).void (C)._123 (D).IF 56.假设所有变量均为整型,表达式: a=2,b=5,a>b? a++: b++,a+b的值是(B). (A).7 (B).8 (C).9 (D).2 57.以下程序段的输出结果为(B). for(i=4;i>1;i--) for(j=1;j putchar('#'); (A).无 (B).###### (C).# (D).### 58.设C语言中,int类型数据占2个字节,则unsigned类型数据占(B). (A).1个字节 (B).2个字节 (C).4个字节 (D).8个字节 59.对for(表达式1;;表达式3)可理解为(B). (A).for(表达式1;0;表达式3) (B).for(表达式1;1;表达式3) (C).for(表达式1;表达式1;表达式3) (D).for(表达式1;表达式3;表达式3) 60.C语言中,定义结构体的保留字是(B). (A).union (B).struct (C).enum (D).typedef 61.设C语言中,int类型数据占2个字节,则short类型数据占().B (A).1个字节 (B).2个字节 (C).4个字节 (D).8个字节 62.对for(表达式1;;表达式3)可理解为(B). (A).for(表达式1;0;表达式3) (B).for(表达式1;1;表达式3) (C).for(表达式1;表达式1;表达式3) (D).for(表达式表达式3;表达式3) 63.C语言允许函数类型缺省定义,此时函数值隐含的类型是().B (A).float (B).int (C).long (D).double 64.若有inta[][2]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为(B). (A).非法,2 (B).&a[1][0],2 (C).&a[0][1],3 (D).a[0][0],4 65.以下叙述正确的是(B). (A).可以把define和if定义为用户标识符 (B).可以把define定义为用户标识符,但不能把if定义为用户标识符 (C).可以把if定义为用户标识符,但不能把define定义为用户标识符 (D).define和if都不能定义为用户标识符 66.sizeof(float)是(B). (A).一个双精度型表达式 (B).一个整型表达式 (C).一种函数调用 (D).一个不合法的表达式 67.对for(表达式1;;表达式3)可理解为(B). (A).for(表达式1;0;表达式3) (B).for(表达式1;1;表达式3) (C).for(表达式1;表达式1;表达式3) (D).for(表达式1;表达式3;表达式3) 68.若有说明: inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是(B). (A).i=*p; (B).*p=*&j; (C).i=&j; (D).i=**p; 69.下面四个选项中,均是不合法的浮点数的选项是(B). (A).160.0.12e3 (B).1232e4.2.e5 (C).-.18123e40.0 (D).-e3.2341e3 70.在一个C程序中(B). (A).main函数必须出现在所有函数之前 (B).main函数可以在任何地方出现 (C).main函数必须出现在所有函数之后 (D).main函数必须出现在固定位置 71.若二维数组a有m列,则在a[i][j]前的元素个数为(B). (A).j*m+i (B).i*m+j (C).i*m+j-1 (D).i*m+j+1 72.若有下列定义,则对a数组元素地址的正确引用是(B). inta[5],*p=a; (A).&a[5] (B).p+2 (C).a++ (D).&a 73.2下列字符序列中,不可用作C语言标识符的是(B). (A).b70 (B).#ab (C).symbol (D).a_1 74.15以下不正确的说法是: C语言规定(B). (A).实参可以是常量,变量或表达式 (B).形参可以是常量,变量或表达式 (C).实参可以为任何类型 (D).形参应与其对应的实参类型一致 75.3下列数据中,为字符串常量的是(B). (A).A (B)."house" (C).Howdoyoudo. (D).$abc 76.17在位运算中,操作数每右移一位,其结果相当于(B). (A).操作数乘以2 (B).操作数除以2 (C).操作数乘以16 (D).操作数除以16 77.以下所列的C语言常量中,错误的是(B). (A).0xFF (B).1.2e0.5 (C).2L (D).'\72' 78.为了提高程序的运行速度,在函数中对于整型或指针可以使用(B)型的变量. (A).auto (B).register (C).static (D).extern 79.10inta=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为().B (A).1 (B).2 (C).3 (D).不一定 80.以下不正确的定义语句是(B). (A).doublex[5]={2.0,4.0,6.0,8.0,10.0}; (B).inty[5]={0,1,3,5,7,9}; (C).charc1[]={'1','2','3','4','5'}; (D).charc2[]={'\x10','\xa','\x8'}; 81.C语言规定: 简单变量做实参时,它和对应形参之间的数据传递方式是(B). (A).地址传递 (B).单向值传递 (C).由实参传给形参,再由形参传回给实参 (D).由用户指定的传递方式 82.以下程序的输出结果是(B). main() {chars[]="123",*p; p=s; printf("%c%c%c\n",*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类型数据占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).0x16 (B).016 (C).-16 (D).0xaaaa 87.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&! y)的值是(C). (A).0 (B).语法错 (C).1 (D).假 88.能将高级语言编写的源程序转换为目标程序的是(C). (A).链接程序 (B).解释程序 (C).编译程序 (D).编辑程序 89.以下关于运算符优先顺序的描述中正确的是(C). (A).关系运算符<算术运算符<赋值运算符<逻辑运算符 (B).逻辑运算符<关系运算符<算术运算符<赋值运算符 (C).赋值运算符<逻辑运算符<关系运算符<算术运算符 (D).算术运算符<关系运算符<赋值运算符<逻辑运算符 90.以下叙述中不正确的是(C). (A).表达式a&=b等价于a=a&b (B).表达式a|=b等价于a=a|b (C).表达式a! =b等价于a=a! b (D).表达式a^=b等价于a=a^b 91.12.以下不能对二维数组a进行正确初始化的语句是(C). (A).int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 考试题库 语言 考试 题库