C语言试题选择题及答案(20210416080312)_第1页
C语言试题选择题及答案(20210416080312)_第2页
C语言试题选择题及答案(20210416080312)_第3页
C语言试题选择题及答案(20210416080312)_第4页
C语言试题选择题及答案(20210416080312)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1题:阅读程序,选择程序的运行结果A。#include mainO int x;x=try(5);printf( “%dn” , x);try(int n) if(n0) return(n*try(n-2);else return(l);A. 15B. 120C. 1D. 前面3个答案均是错误的第2题:在下列结论中,只有一个是正确的,它是A。A. 递归函数中的形式参数是自动变量B. 递归函数中的形式参数是外部变量C. 递归函数中的形式参数是静态变量D. 递归函数中的形式参数可以根据需要自己定义存储类型 第3题:阅读程序,选择程序的输出结果_A。#include f(int x, int y)

2、 return(y-x);mainO int (*g) (int, int);int a=5, b=6, c=2;g=f;c=(*g)(a, b); printf( “dn” , c);A. 1B. 2C. 3D. 前面3个答案均是错误的 第4题:阅读程序,选择程序的输出结果_D. #include char *p二” abcdefgh i j k1mnopqv ; main() wh订e(*p+!= e ); printf( “%crT , *p);A. cB. dC. eD. f 第6题:阅读程序,选择程序的输出结果D #include void prtv(irit *x) printf(

3、n %dn” , +*x);mainO int a=25;prtv(&a);A. 23B. 24C. 25D. 26第7题:阅读程序,选择程序的输出结果B。#include main() static char a = language” , b=” program” ; char *ptrl=a, *ptr2=b;int k;for(k=0; k7; k+)if(*(ptrl+k)=*(ptr2+k)printf(n %c” , *(ptrl+k);A. gaeB. gaC. languageD. 有语法错误 第8题:函数调用strcat(strcpy(strl, str2), str3)的

4、功能是C。A. 将串std复制到串str2中然后再连接到str3之后B. 将串stil连接到串str2之后,再复制到str3之中C. 将串str2复制到串strl中,然后再将串str3连接到串strl之 后D. 将串str2复制到串strl中,再将串strl连接到str3之后 第9题:设有以下程序段,则在main函数中使用语句_D是无意义的。 main() int min();int a, b, c, (*p)(); p二min; min(x, y) int x, y;A. printf(” dn” , min(a,b);B. c=min(a, b);C. c=(*p)(a, b);D. p+

5、;第10题:已知static int a23=2, 4, 6, 8,10,12;正确表示数组元素地 址的是AA. * (a+1)B. *(al+2)C. al+3D. a0 0 第11题:已知int i, x34;则不能将xll的值赋给变量i的语句是 C。A. i二*(*(x+l)+l)B. i=xllC. i=*(*(x+l)D. i=*(xl+l) 第12题:当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是 C .A. c=b=a;B. (a=c)|(b=c);C. (a=c)&(b=c);D. a=c=b;第3题:函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结f

6、una(int *x, int *y) *p;*x=*y; *y=*p;果。能正确执行此功能的函数是DA. int*P二x;B. intfunb(int x, int y) t;t=x; x=y; y=t;C. func(int *x,int *y) *x=*y;*y=*X;D. fund(int *x, int *y) *x=*x+*y; *y=*x-*y; *x二*x-*y;第14题:已知int x=l, 3, 5, 7, 9,11, *ptr=x;则不能正确引用数组元素 的语句是BA. *(ptr)B. *(ptr)C. *(ptr+)D. *(+ptr) 第15题:已知int *ptr

7、l, *ptr2;均指向同一个int类型一维数组中的不同 元素,k为int类型变量,则下面错误的赋值语句是B。A. k=*ptrl+*ptr2;B. ptr2=k;C. ptrl=ptr2;D. k=*ptrl*(*ptr2);第16题:已知charsl 10, *s2二” abOcdef” ;则执行语句 strcpy(sl, s2); 后,变量si的容为AA. abB. cdefC. abOcdefD. 容不定第17题:以下有关宏替换叙述中,错误的是D。A. 宏替换不占用运行时间B. 宏无类型名C. 宏替换只是字符替换D. 宏名必须用大写字母表示第18题:C语言主函数main最多允许有B个参

8、数。A. 1B. 2C. 0D. 3第19题:C语言的编译系统对宏定义是D。A. 在程序运行时进行替换处理B. 在程序连接时进行处理C. 和源程序中其他C语句同时进行编译的D. 在对源程序中其他成分正式编译之前进行处理的 第20题:已知int *p;则变量p是B。A. 指向int的指针B. 指向指针的指针C. int型变量D. 以上3种说法均是错误的第21题:已知int i; char*s=M a045+045, b” ;执行语句for(i=0; *s+; i+);之后,变量i的结果是B。A. 7B. 8C. 9D. 以上3个答案都是错误的第22题:已知int i=0, j=l, *p二&i,

9、 *q=&j;错误的语句是D。A. i=*&j;B. p二&*&i;C. j=*p+;D. i=*&q;第23题:已知int a=l, 2, 3,4, 5, 6, 7, 8,9,10,11,12, *p=a;则值为3的 表达式是AA.p+=2,*(p+)B.p+=2,*+pC.p+=3,*p+D.p+=2,+*p第2!4题:已知int a34, *p=a; p+=6;那么*p和D的值相同。A. *(a+6)B. *(&a0+6)C. *(al+2)D. *(&a00+6) 第25题:已知int a43=l, 2, 3,4, 5, 6, 7, 8, 9,10,11,12; int (*ptr)3

10、=a, *p=a0;则以下能够正确表示数组元素al2的表 达式是_D。A. *(ptr+l)2)B. *(*(p+5)C. (*ptr+l)+2D. *(*(a+l)+2) 第26题:已知char *s;正确的语句是BA. s二” computern ;B. *s二” computer” ;.二 computer ;D. *s= A;第27题:已知char s20= ” programming” , *ps二s;则不能引用字母o的 表达式是一AA. ps+2B. s2C. ps2D. ps+=2, *ps 第28题:已知char b5, *p=b;则正确的赋值语句是CA. b二” abed”

11、;WORD版木B. *b二” abed” ;C. p二” abed” ;D. *p二” abed” ;第29题:已知char s100J; int i;则在下列引用数组元素的语句中,错误 的表示形式是D.A. si+10B. * (s+i)C. *(i+s)D. *(s+)+i) 第30题:已知char s10, *p=s;则下列语句中,错误的语句是B。A. p=s+5;B. s 二 p+s;C. s2=p4D. *p=s0;第31题:(103)以下程序的输出结果是D。#include mainOint x=10, y=10;printf( “%d %dn” , x, y); A. 10 10

12、B. 9 9C. 9 10D. 10 9已知doub 1 e *p6;它的含义是C。A. p是指向doub 1 e类型变量的指针B. p是double类型数组C. p是指针数组D. p是数组指针第33题:说明语句int *(*p)();的含义是DA. p是一个指向int型数组的指针B. p是指针变量,它构成了指针数组C. p是一个指向函数的指针,该函数的返回值是一个整型D. p是一个指向函数的指针,该函数的返回值是一个指向整型 的指针第34题:已知int a, *p二&a;则下列函数调用中错误的是DA. scanf(” %d” , &a);B. scanf(M %d” , p);C. prin

13、tf(M %d” , a);D. printf(” d” , p);第35题:已知int *p, a;则语句p=&a;中的运算符&的含义是DA. 位与运算B. 逻辑与运算C. 取指针容D. 取变量地址第36题:下面程序的功能是将字符串s中所有的字符“c”删除。请选择填空。# inc1ude main() char s80;int i, j;gets(s);for(i=j=0; si!= 0 ; i+) if(si!= c )Asj!= 0;puts(s);A. sj+=si;B. s+j二si;C. sj=si; j+;D sj=si第37题:阅读下列程序,选择程序的运行结果B #includ

14、e main() int i, k, a10, p3;k=5;for(i=0; i10; i+)ai=i;for(i=0; i3; i+)pi=ai*(i+l);for(i=0; i3; i+)k+二pi*2;printf( “dn” , k);A. 20B. 21C. 22D. 23第38题:下述程序的输出结果是_A。#include main() printf( “f” , 25+l*7%2/4);A. 2.500000B. 2.750000C. 3.375000D. 3.000000第39题:下面程序的输出结果是B。#include main() printf( “%dn” , NULL

15、);A. -1B. 0C. 1D. 程序是错误的第40题:在下面的程序段中,每行前面的数字表示行号,则下面程序I)1 mainO2 3 int a3;4 int i;5 for(i=0; i3; i+) scanf( “%d” , &ai);6 for(i=l;i3;i+)a0=a0+ai;7 printf(“fn”,a);8 A. 没有错误B. 第5行有错误C. 第6行有错误D.第7行有错误 第41题:在下面的程序段中,每行前面的数字表示行号,则下面程序C1 main()2 3 float a10;4 int i;5 for(i=0; i3; i+) scanf( “%d” , &ai);6

16、 for(i=l; is2)B. if(strcmp(sls2)C. if(strcmp(s2sl)0)D. if(strcmp(sls2)0)第45题:已知char a20, b20;则以下正确的输入语句是B。A. gets(a, b);B. scanf( “s%s” , a, b);C. scanf( “s%s” , &a, &b);D. gets( “a” ), gets( “b” );第46题:若二维数组a由ni列则在aij之前的元素个数为BA. j*m+iB. i *m+ jC. i*m+jTD. i*m+j+l第47题:下列数组说明语句中错误的是B。A. double x5 = 2

17、. 0, 4. 0, 6. 0, 8. 0, 10. 0;B. int y5=0,1,3, 5, 7,9;C. char cl卜 12345 ;D. char c2= xl0 xa , x8 ;第48题:在C语言中,二维数组元素在存中的存放顺序是_A。A. 按行存放B. 按列存放C. 由用户自己定义D. 由编译器决定第49题:已知static int a3J4;则数组a中个元素BA. 可在程序的运行阶段得到初值0B. 可在程序的编译阶段得到初值0C. 不能得到确定的初值D. 可在程序的编译或运行阶段得到初值0第50题:语句typedef long class的作用是D。A. 建立了一种新的数据

18、类型B. 定义了一个整型变量C. 定义了一个长整型变量D. 定义了一个新的数据类型标识符第51题:已知staticint a3 4=0;则下面正确的叙述是DA. 只有元素a00可以得到初值0B. 此说明语句是错误的C. 数组a中每个元素都可得到初值,但其值不一定为0D. 数组a中每个元素均可得到初至0第52题:以下能对外部的二维数组a进行初始化错误的语句是C_A. int a23=0;B. int a3=l,2, 0;C. int a23=l,2, 3,4, 5,6;D. int a3=l,2, 3, 4, 5,6;第53题:以下能对外部的二维数组a进行正确初始化的语句是_B。A. inta2

19、卜1,0,1,5,2,3;B. inta3=l,2,3,4,5,6;C. inta24=l,2,3,4,5, 6;D. inta3=l, 0,1, 1,1;第54 题:(105)为了求i的3次方,请选择一个表达式填入D,使程序可以正确执行。#define CUBE(x) (x*x*x)main() int i=4;print( “n%d” , CUBE( );A. i*i*iB. x*x*xC. xD. i 第55题:已知int a 10;则对a数组元素的正确引用是D。A. a10B. a3.5C. a(5)D. a10-10 第56题:在C语言中,引用数组元素时,其数组下标的数据类型允许是_

20、C。A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式 第57题:已知char str =n abn012W ” ;则执行语句-printf( “%d”, strlen(str);的结果是C.A. 3B. 4C. 6D. 12 第58题:下面关于字符串的说明中,错误的是_A。A. char str7=M FORTRAN;B. char str=M FORTRAN” ;C. char *str二” FORTRAN” ;D. charstr=, F O R T R A N 0 ;第59题:以下程序段的输出是A。static char a= “-12345” ;int k

21、=0, symbol, m;if(ak= + |ak=-)symbol=(ak+=, + )?1:-l;for(m=0; ak=, O &ak= 9 ; k+)m=m*10+ak- O;printf( “numbei二%dn”,symbo 1*in);A. number=-12345B. number=12345C. number=-10000D. number=10000 第60题:已知char strlflO, str210= books” ;则在程序中能够将 字符串“books”赋给数组strl的正确语句是B。A. strl= “books” ;B. strcpy(stri, str2)

22、;C. strl=str2D. strcpy(str2, strl);第61题:若有以下语句,则正确的描述是B。static char x= “12345” ;static char y= T ,2 ,3 ,4 ,5 ;A. x数组和y数组的长度相同B. x数组长度大于y数组长度C. x数组长度小于y数组长度D. x数组等价于y数组第62题:在下述对C语言字符数组的描述中错误的是C。A. 字符数组可以存放字符串B. 字符数组中的字符串可以进行整体输入/输出C. 可以在赋值语句过赋值运算符“二”对字符数组整体赋值D. 字符数组的下标从0开始第63题:要说明一个有10个int元素的数组,应当选择语

23、句A。A. int a10;B. int a2, 5;C. int a;D. int *a10;第64题:已知char s5, c; register char b;则调用函数scanf的正确语 句是D。A.scanf(“s%c” ,s,c);B.scanf(“%d%c” ,&b,&c);C.scanf(“%d%c” ,b,&c);D.scanf(“s%c” ,s,&c);第65题:错误的说明语句是_D 。A. static char word = T ,u , r ,b ,o;B. static char word= “Turbo0” ;C. static char word= “Turbo

24、O” ;D. static char word= Turbo0,;第66题:请选择下列程序的运行结果A。#include int d=l;fun(int p) int d=5;d+二p+;printf( %d ”, d);mainO int a=3;fun(a);d+二a+; printf( %d” , d);A. 8 4B. 9 6C. 9 4D. 8 5第67题:请选择下列程序的运行结果_D_ #include try() static int x=3;x+;return(x);main() int i, x;for(i=0; i=2; i+) x=try();printf( “%dn”

25、, x);A. 3B. 4C. 5D. 6第68题:请选择下列程序的运行结果C#include fun(int *p) int a=10;*P=a;+a;mainO int a=5;fun(&a);printf( “%dn” , a);A. 5B. 6C. 10D. 11 第69题:以下错误的描述为_C。A. 在函数之外定义的变量称为外部变量,外部变量是全局变量B. 在一个函数中既可以使用本函数中的局部变量,又可以使用 外部变量C. 外部变量定义和外部变量声明的含义相同D. 若在同一个源文件中,外部变量与局部变量同名,则在局部 变量的作用围,外部变量不起作用。第70题:在一个C源程序文件中,若

26、要定义一个只允许在该源文件中所有函 数使用的变量,则该变量需要的存储类别是D。A. externB. registerC. autoD. st atic 第71题:C语言中,对于存储类型为D的变量,只有在使用它们时才占 用存单元。A. static和autoB. register和 ex temC. reg is tei和 sta ticD. auto和register 第72题:C语言规定,调用一个函数时,实参变量和形参变量之间的数据传 递方式是一B A. 地址传递B. 值传递C. 由实参传给形参,并由形参传回来给实参D. 由用户指定传递方式 第73题: 以下描述错误的是D。A. 不同函数中

27、可以使用相同的变量名B. 形式参数是局部变量C. 一个函数部定义的变量只能在本函数围有效D. 在一个函数部的复合语句中定义的变量可以在本函数围有 效第74题:C语言中函数返回值的类型是由_D决定的。A. return语句中的表达式类型B. 调用该函数的主调函数类型C. 调用函数时临时D. 定义函数时所指定的函数类型第75题:已知int* p();这里的p是C。A. 指向int类型的指针变量B. int类型的指针数组C. 一个函数,该函数的返回值是指向int类型的指针变量D. 一个指向函数的指针变量该函数的返回值是int类型第76题:以下叙述中错误的是C。A. 在C语言中,函数中的自动变量可以赋

28、初值,每调用一次赋 一次初值B. 在C语言中,在调用函数时,实参和对应形参在类型上只需 赋值兼容C. 在C语言中外部变量的隐含类别是自动存储类别D. 在C语言中,函数形参的存储类型是自动(auto)类型的变 量第77题:已知函数abc的定义为:void abc()则函数定义中void的含义是A 。A. 执行函数abc后,函数没有返回值B. 执行函数abc后,函数不再返回C. 执行函数abc后,可以返回任意类型D. 以上3个答案全是错误的第78题:以下描述正确的是C。A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须在mainO函数中定义C. C语言程序总是从m

29、ainO函数开始执行D. C语言程序中的mainO函数必须放在程序的开始部分第79题:C语言程序由函数组成,它的B。A. 主函数必须在其他函数之前,函数可以嵌套定义函数B. 主函数可以在其他函数之后,函数不可以嵌套定义函数C. 主函数必须在其他函数之前,函数不可以嵌套定义函数D. 主函数必须在其他函数之后,函数可以嵌套定义函数第80题:选择下面程序的运行结果A。#include mainO int k=l;char c= A;WORD版木 switch(c+) case Ak+; break;case Bcase Ccase Dcase Ek+=2; break; k=k%2; continu

30、e; k二k*2; break;default: k=k/3; k+;while(c, F); printf( “k二%dn” , k);A. k=lB. k=15C. k=12D. 以上结果都不对 第81题:阅读程序,写出程序的输出结果D #include main() int x=10, y=10, i;float s;for(i=0; x8; y=+i)printf( “%d %d ” , x, y);A. 10 1 9 2B. 9 8 7 6C. 10 9 9 0D. 10 10 9 1若a、b、c、d、t均为int类型变量,则执行以下程序段后的结果为 C。#define MAX(A,

31、B) (A)XB)?(A):(B)#define PRINT(Y) printf( “Y=%dn” , Y) a=l; b=2; c=3; d=4;t=MAX(a+b, c+d);PRINT(t);A. Y=3B. 存在语法错误C. Y=7D. Y=0 第83题:阅读程序,写出程序的输出结果_B。#include main() char i, j;for(i= O , j= 9 ; ij; i+, j ) printf( “%c%c” , i, j);printf( “n” );A.B. 0918273645C. 9876543210D. 以上3个答案均不对 第84题:阅读程序,写出程序的输出

32、结果D#include main() int i=0, j=0, k=0, m;for(m=0; m4; m+)WORD版木switch(m) case 0: i二m+;case 1: j二m+;case 2: k二m+;case 3: m+;printf( “n%d, %d, %d, %cT , i, j, k, m);A.0,0,2,4B.0,1,2,3C.0,1,2,4D.0,1,2,5第85题:如果下列程序可以正常运行,则当从键盘输入字母A时,输出结果 为B#include main() char ch;ch二getchar();switch(ch) case 65: printf(

33、“%c” , case 66: printf( “c” ,A);B);defauIt:printf( %s” ,“other”A.AB.ABotherC.AotherD.编译错误:,无法运行下列程序的运行结果是C第86题:WORD版木#include main() int a=2, b=-l, c=2; if(ab)if(b0) c=0; else c+=l;printf( “%dn” , c);A. 0B. 1C. 2D. 3 第87题:若int x=3;且有下面的程序片段,则输出结果为C do printf( “%d ” , x-=2);whil e(!(x);A. 1B. 3 0C. 1 -2D. 死循环 第88题:若int a=5;则执行以下语句后,打印的结果为Ado printf( “2dn” , a);while(!a);A. 5B. 不打印任何容C. 4D. 陷入死循环第89题:WORD版木若int i, x;则for(i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论