C练习题.docx
- 文档编号:10288273
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:26
- 大小:25.28KB
C练习题.docx
《C练习题.docx》由会员分享,可在线阅读,更多相关《C练习题.docx(26页珍藏版)》请在冰点文库上搜索。
C练习题
一、 选择题
(本大题共40个选项,每个选择项1.5分,共60分)
1.在C语言中,合法的字符常数是
(1)
A)‘程序设计’ B)“程序设计”
C)c D)‘\\’
2.在C语言中,以下不正确的八进制或不正确的十六进制数是
(2)
A)090 B)0xAB
C)0xla D)-016
3.执行intx=2,y=3;后表达式x=(y==3)的值是(3)
A)0 B)1
C)2 D)3
4.执行语句inta,b,c;a=(b=c=3,c++,b+=c);则a的值是(4)
A)3 B)4
C)7 D)11
5.在循环结构的循环体中执行break语句,其作用是(5)
A)结束本次循环,进行下次循环
B)继续执行break语句之后的循环体中各语句
C)跳出该循环体,提前结束循环
D)终止程序运行
6.以下程序运行结果是(6)
main()
{chars[]=”\’Address\’”;
printf(%d\n”,strlen(s));
}
A)9 B)10
C)11 D)12
7.以下程序运行结果是(7)
main()
{inta[]={2,4,6,8,10},y=1,x;
for(x=0;x<3;x++) y+=a[x+1];
printf(“%d\n”,y);
}
A)17 B)18
C)19 D)20
8.已定义charx[8];inti;为了给x数组赋值,以下正确的语句是(8)
A)x[8]=”TurboC”; B)x=”TurboC”;
C)x[]=”TurboC”; D)for(i=0;i<7;i++) x[i]=getchar();
9.设inta[][4]={0,0};则以下错误的描述是(9)
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)数组a的行数为1
D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0
10.以下程序运行结果是(10)
fun3(intx)
{staticinta=3;
a+=x;
returna;
}
main()
{intk=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf(“%d\n”,n);
}
A)3 B)4
C)6 D)9
11.以下四个运算符,按优先级由高到低的排列顺序是(11)
A)++ % += > B)% ++ > +=
C)% += > ++ D)++ % > +=
12.以下不正确的描述是(12)
A)在函数外部定义的变量是全局变量
B)在函数内部定义的变量是局部变量
C)函数的形参是局部变量
D)局部变量不能与全局变量同名
13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为(13)
A)直接按系统设定的标准方式搜索目录
B)先在源程序所在目录搜索,再按系统设定的标准方式搜索
C)仅仅搜索源程序所在的目录
D)仅仅搜索当前目录
14.设有语句int(*p)();则p是一个(14)
A)指向一维整型数组的指针变量
B)指针函数,该函数的返回值为指向整型变量的指针
C)指向函数的指针变量,该函数的返回值为整型
D)数组指针,它的每个元素都是一个可以指向整型变量的指针变量
15.若有typedeffloatAR[5];ARa;则以下叙述正确的是(15)
A)a是一个新类型名
B)AR是一个实型数组
C)AR是一个实型变量
D)a是一个实型数组
16.C语言的简单数据类型包括(16)
A)整型、实型、逻辑型 B)整型、实型、字符型、逻辑型
C)整型、字符型、逻辑型 D)整型、实型、字符型
17.在C语言中,变量所分配的内存空间大小(17)
A)均为一个字节 B)由用户自己定义
C)由变量的类型决定 D)是任意的
18.在C语言中,合法的整型常数是(18)
A)-0x123 B)3.14159 C)01001101b D)6.7e10
19.下列各变量均为整型,选项中不正确的C语言赋值语句是(19)
A)i+=++i; B)i=j==k;
C)i=j+=i; D)i=j+1=k;
20.数学关系式x≤y≤z可用C语言的表达式表示为(20)
A)(x<=y)&&(y<=z) B)(x<=y)and(y<=z)
C)(x<=y<=z) D)(x<=y)&(y 21.若定义floata;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用(21) A)scanf(“%6f”,&a); B)scanf(“%5.2f”,a); C)scanf(“%6.2f”,&a); D)scanf(“%f”,a); 22.下面程序段的运行结果是(22) unsigneda=0356,b; b=~a|a<<2+1; printf(“%x\n”,b); A)ffba B)ff71 C)fff8 D)fc02 23.要使以下程序的输出结果为4,则a和b应满足的条件是(23) main() {ints,t,a,b; scanf(“%d%d”,&a,&b); s=t=1; if(a>0)s+=1; if(a>b)t=s+t; else if(a==b)t=5; elset=2*s; printf(“%d\n”,t); } A)a>0并且a C)a>0并且a>b D)a<0并且a 24.若inti;则以下循环语句的循环执行次数是(24) for(i=2;i==0;)printf(“%d”,i--); A)无限次 B)0次 C)1次 D)2次 25.下面程序的输出结果为(25) main() {inti; for(i=100;i<200;i++) { if(i%5==0)continue; printf(“%d\n”,i); break; } } A)100 B)101 C)无限循环 D)无输出结果 26.下列程序段的运行结果是(26) inti=1,a[]={1,5,10,9,13,7}; while(a[i]<=10)a[i++]+=2; for(i=0;i<6;i++)printf(“%d”,a[i]); A)271211139 B)171211137 C)171211139 D)17129137 27.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是(27) A)chars[]=“abcde”; B)chars[]={’a’,’b’,’c’,’d’,’e’,’\0’}; C)chars[]={“abcde”}; D)chars[5]=“abcde”; 28.若变量c为char类型,能正确判断出c为小写字母的表达式是(28) A)'a'<=c<='z' B)(c>='a')||(c<='z') C)('a'<=c)and('z'>=c) D)(c>='a')&&(c<='z') 29.下列程序段的输出结果是(29) voidfun(int*x,int*y) {printf("%d%d",*x,*y);*x=3;*y=4;} main() {intx=1,y=2; fun(&y,&x); printf("%d%d",x,y); } A)2143 B)1212 C)1234 D)2112 30.以下程序的输出结果是(30) main() {inti,k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf("%d\n",k); } A)20 B)21 C)22 D)23 31.当执行下面的程序时,如果输入ABC,则输出结果是(31) main() {charss[10]="1,2,3,4,5"; gets(ss);strcat(ss,"6789");printf("%s\n",ss); } A)ABC6789 B)ABC67 C)12345ABC6 D)ABC456789 32.以下不能对二维数组a进行正确的初始化的语句是(32) A)inta[2][3]={0}; B)inta[][3]={1,2,3,4,5}; C)inta[2][3]={{1,2},{3,4},{5,6}}; D)inta[2][3]={{1},{3,4,5}}; 33.若inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(33) A)2 B)3 C)4 D)无确定值 34.下面程序段的运行结果是(34) inta[2][3]={1,2,3},i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) {a[i][j]=a[i*j%2][j]+a[i][(i+j)%3]; printf(“%d,”,a[i][j]); } A)2,4,6,2,0,8, B)1,2,3,0,0,0, C)1,2,3,2,0,6, D)2,4,6,2,0,6, 35.下面程序段的运行结果是(35) inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(“%d\n”,a[2][1]); A)2 B)4 C)7 D)8 36.定义一个结构体变量时,系统分配给它的内存大小是(36) A)各成员所需内存量的总和 B)成员中占内存量最大者所需内存容量 C)结构中第一个成员所需内存容量 D)结构中最后一个成员所需内存容量 37.若typedefcharSTRING[255];STRINGs;,则s是(37) A)字符指针数组变量 B)字符数组变量 C)字符变量 D)字符指针变量 38.若已定义: int*p,a;,则语句p=&a;中的运算符“&”的含义是(38) A)位与运算 B)逻辑与运算 C)取指针内容 D)取变量地址 39.若有定义char*p,ch;则不能正确赋值的语句组是(39) A)p=&ch;scanf(“%c”,p); B)p=(char*)malloc (1);*p=getchar(); C)*p=getchar();p=&ch; D)p=&ch;*p=getchar(); 40.下面程序段的运行结果是(40) chars[]=“ABC”;inti; for(i=0;i<3;i++)printf(“%s”,&s[i]); A)ABC B)ABCABCABC C)AABABC D)ABCBCC 1.下列叙述中正确的是 A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言所有函数都是外部函数 2.以下所列的C语言常量中,错误的是 A)0xFF B)1.2e0.5 C)2L D)'\72' 3.下列选项中,合法的C语言关键字是 A)VAR B)cher C)integer D)default 4.设x、y、t均为int型变量,则执行语句: x=y=3;t=++x||++y;后,y的值为 A)不定值 B)4 C)3 D)1 5.下面程序段的运行结果是(5) floaty=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p; inti; p=&a[1]; for(i=0;i<3;i++)y+=*(p+i); printf(“%f\n”,y); A)12.0000 B)28.0000 C)20.0000 D)18.0000 6.下面程序段的运行结果是(6) charc[]={‘a’,‘b’,‘\0’,‘c’,‘\0’}; printf(“%s\n”,c); A)abc B)‘a’‘b’ C)abc D)ab 7.下面程序段的运行结果是(7) chars[10],*sp=“HELLO”; strcpy(s,sp); s[0]=‘h’;s[6]=‘! ’; puts(s); A)hELLO B)HELLO C)hHELLO! D)h! 8.若有定义inta[3][5],i,j;(且0≤i<3,0≤j<5),则a[i][j]的地址不正确表示是(8) A)&a[i][j] B)a[i]+j C)*(a+i)+j D)*(*(a+i)+j) 9.若有定义int*p[4];,则标识符p是一个(9) A)变量的指针变量 B)指向函数的指针变量 C)指向有四个整数元素的一维数组的指针变量 D) 指针数组名,有四个元素,每个元素均为一个指向整型变量的指针 10.若有定义char*language[]={“FORTRAN”,“BASIC”,“PASCAL”,“JAVA”, “C”};则language[2]的值是(10) A)一个字符 B)一个地址 C)一个字符串 D)不确定 11.C语言规定,函数返回值的类型由(11)所决定。 A)return语句中的表达式类型 B)调用该函数时的主调函数类型 C)调用该函数时的形参类型 D) 在定义该函数时所指定的函数类型 12.下面程序的输出结果为(12) #include #defineSQR(x)x*x main() {inta=10,k=3,m=2; a=SQR(k+m); printf(“%d\n”,a); } A)25 B)11 C)5 D)10 13.下面程序的输出结果为(13) #include main() {inta=10; {inta=15; printf(“a.1=%d,”,a); } printf(“a.2=%d\n”,a); } A)a.1=10,a.2=15 B)a.1=15,a.2=10 C)a.1=15,a.2=15 D)a.1=10,a.2=10 14.下面函数调用正确的是(14) A)fopen(‘file.dat’,‘r’); B)fprintf(“%ld”,data,fp); C)fclose(“file.dat”); D)fread(&i,sizeof(int),1,fp); 15.若变量已正确定义并赋值,下面符合C语言语法的表达式是(15) A)a: =b+1 B)a=b=c+2 C)int18.5%3 D)a=a+7=c+b 16.C语言中运算对象必须是整型的运算符是(16) A)%= B)/ C)= D)<= 17.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(17) A)1 B)2 C)2.0 D)2.5 18.有如下程序: main() {inti,sum; for(i=1;i<=3;sum++) sum+=i; printf(“%d\n”,sum); } 该程序的执行结果是(18) A)6 B)3 C)死循环 D)0 19.如下程序: intrunc(inta,intb) {return(a+b);} main() {intx=2,y=5,z=8,r; r=runc(runc(x,y),z); printf(“%d\n”,r); } 该程序的执行结果是(19) A)12 B)13 C)14 D)15 20.有如下程序段: int*p,a=10,b=1; p=&a;a=*p+b; 执行该程序段后,a的值为(20) A)12 B)11 C)10 D)编译出错 21.以下函数返回a所指数组中最小的值所在的下标值 fun(int*a,intn) {inti,j=0,p; p=j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 练习题