《C语言试题选择题及答案.docx》由会员分享,可在线阅读,更多相关《C语言试题选择题及答案.docx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1题:阅读程序,选择程序的运行结果A ttinclude main () int x;x=try(5);printf ( dn”,x);)try(int n) if (n0) return(n*try(n-2);else return(1);A. 15B. 120C. 1D.前面3个答案均是错误的第2题:在下列结论中,只有一个是正确的,它是AoA.递归函数中的形式参数是自动变量B.递归函数中的形式参数是外部变量C.递归函数中的形式参数是静态变量D.递归函数中的形式参数可以依据须要自己定义存储类型第3题:阅读程序,选择程序的输出结果_Aoftinclude f (int x, int y) r
2、eturn(y-x);)main () int (*g) (int, int);int a=5, b=6, c=2;已知double *p6;它的含义是 C。A. p是指向double类型变量的指针B. p是double类型数组C. p是指针数组D. p是数组指针第33题:说明语句int *(*p)();的含义是 DoA. p是一个指向int型数组的指针B. p是指针变量,它构成了指针数组C. p是一个指向函数的指针,该函数的返回值是一个整型D. p是一个指向函数的指针,该函数的返回值是一个指向整型 的指针第34题已知int a, *p=&a;则下列函数调用中错误的是 D。A. scanf (
3、 %d , &a);B. scanf ( %d” , p);C. printf ( d” , a);D. printf ( %d,p);第35题:已知int *p, a;则语句p=&a;中的运算符&的含义是 D。A.位与运算B.逻辑与运算C.取指针内容D.取变量地址第36题:下面程序的功能是将字符串s中全部的字符“c”删除。请选择填空。 # include main () char s 80;int i, j;gets(s);for(i=j=O; si!=0 ; i+) if(si!=, c ) A (T ;puts(s);)A. sj+=si;B. s+j=si;C. sj=si ; j+;
4、D. sj=si第37题:阅读下列程序,选择程序的运行结果B ttinclude 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题:下述程序的输出结果是Attinclude main () printf ( %f”,2. 5+l*7%2/4);)A. 2.500000B. 2.750000C. 3.375000D. 3.000000第39题:下
5、面程序的输出结果是Boinclude main () printf( “dn” , NULL);A. -1B. 0C. 1D.程序是错误的第40题:在下面的程序段中,每行前面的数字表示行号,则下面程序Do1 main ()2 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 (u%fnv,a);8 )A.没有错误B.第5行有错误C.第6行有错误D.第7行有错误第41题:在下面的程序段中,每行前面的数字表示行号,则下面程序CO1 main ()2 3 float a10;4
6、 int i;5 for(i=0;i3;i+)scanf(%d”, &ai);6 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 ( u%s%sv , &a, &b);D. gets ( a ), gets( b);第46题:若二维数组a由m列,则在ai j之前的元素个数为B。A. j*m+iB. i*m+jC. i*m+j+l第47题
7、:下列数组说明语句中错误的是BoA. double x5 = 2. 0, 4. 0, 6. 0, 8. 0, 10. 0;B. int y5 = 0, 1,3, 5, 7, 9;C. char cl = , 1 , 2 , 3 , 4 , 5 ;D. char c2口= xl0, , xa , x8 );第48题:在C语言中,二维数组元素在内存中的存放依次是_AA.按行存放B.按列存放C.由用户自己定义D.由编译器确定第49题:已知static int a3 4;则数组a中个元素BA.可在程序的运行阶段得到初值0B.可在程序的编译阶段得到初值0C.不能得到确定的初值D.可在程序的编译或运行阶段
8、得到初值0第50题:语句typedef long class的作用是 D。A.建立了一种新的数据类型B.定义了一个整型变量C.定义了一个长整型变量D.定义了一个新的数据类型标识符第51题:已知staticint a3 4 = 0;则下面正确的叙述是_DA.只有元素a0 0可以得到初值0B.此说明语句是错误的C.数组a中每个元素都可得到初值,但其值不愿定为0D.数组a中每个元素均可得到初至0第52题:以下能对外部的二维数组a进行初始化错误的语句是 CA. int a2 3 = 0;B. int a3 = l,2, 0;C. int a23 = l,2, 3,4, 5,6);D. int a3 =
9、 l,2, 3, 4, 5, 6;第53题: 以下能对外部的二维数组a进行正确初始化的语句是_BA. int a口=1,0,1, 5,2,3;B. int a3 = l,2,3, 4,5,6;C. int a24 = l,2,3, 4,5, 6;D. int a3 = !, 0,1, , 1,1;第54题第105)为了求i的3次方,请选择一个表达式填入D,使程序可以正 确执行。#define CUBE (x) (x*x*x)main () int 1=4;print( “n%d”,CUBE( );)A. i*i*iB. x*x*xC. xD. i第55题:已知int a10;则对a数组元素的正
10、确引用是_D。A. a10B. a3, 5C. a(5)D. a10-10第56题:在C语言中,引用数组元素时,其数组下标的数据类型允许是C OA.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式第57题:已知char str二 abn02 ;贝U执行语句:printf ( u%d?, strlen(str);的结果是 C.A. 3B. 4C. 6D. 12第58题:下面关于字符串的说明中,错误的是_A。A. char str7 = v FORTRAN” ;B. char str口二” FORTRANv ;C. char *str= FORTRAN;D. charstr= F
11、 , O , R,,R , A , N , 0 ;第59题:以下程序段的输出是Aostatic char a= T2345”;int k=0, symbol, m;if(ak=二+ |ak=)symbol=(ak+=+ )?1:-l;for(m=0; ak=, O &ak=, 9 ; k+)m=m*10+ak- O;printf( anumber=%dnv , symbol*m);A. number=-12345B. number=12345C. number=-10000D. number=10000第60题:已知char strl 10, str2 10二 “books” ;则在程序中能够
12、将 字符串“books”赋给数组strl的正确语句是BoA. strl= “books ;B. strcpy(strl, str2);C. strl=str2D. strcpy (str2, strl);第61题:若有以下语句,则正确的描述是Bostatic char x= 12345” ;static char y = ,2,3 ,,4 ,5 ;A. x数组和y数组的长度相同B. x数组长度大于y数组长度C. x数组长度小于y数组长度D. x数组等价于y数组第62题:在下述对C语言字符数组的描述中错误的是C。A.字符数组可以存放字符串B.字符数组中的字符串可以进行整体输入/输出C.可以在赋值
13、语句中通过赋值运算符“二”对字符数组整体赋 值D.字符数组的下标从0起先第63题:要说明一个有10个int元素的数组,应当选择语句AoA. inta10;B. inta2, 5;C. inta;D. int*a10;第64题:已知char s5, c; register char b;则调用函数scanf的正确语 句是DoA. 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 =
14、 T , u , r , b , o, 0 ;B. static char word = Turbo0” );C. static char word= Turbo0” ;D. static char word= Turbo0;第66题:请选择下列程序的运行结果Ao#include int d=l;fun (int p) int d=5;d+=p+;printf ( %d , d);)main () int a=3;fun(a);d+=a+;printf (, d);g=f;C= (*g) (a, b);printf ( %dn,c);)A. 1B. 2C. 3D.前面3个答案均是错误的第4题:
15、阅读程序,选择程序的输出结果_Dttinclude char *p=abcdefghijklmnopq ;main () while(*p+!=;printf( %cn , *p);)A. cB. dC. eD. f第6题:阅读程序,选择程序的输出结果Dttinclude void prtv (int *x) printf(v %dn” , +*x);)main () int a=25;prtv (&a);B. 9 6C. 9 4D. 8 5第67题:请选择下列程序的运行结果_Dftinclude try () static int x=3;x+;return (x);)main () int
16、 i, x;for (i=0; i=2; i+) x=try ();printf( %dn,x);)A. 3B. 4C. 5D. 6第68题:请选择下列程序的运行结果Cftinclude fun (int *p) int a=10;*p=a;+a;)main() int a=5;fun(&a);printf( %dn , a);A. 5B. 6C. 10D. 11 第69题:以下错误的描述为_COA.在函数之外定义的变量称为外部变量,外部变量是全局变量B.在一个函数中既可以运用本函数中的局部变量,又可以运用 外部变量C.外部变量定义和外部变量声明的含义相同D.若在同一个源文件中,外部变量与局部
17、变量同名,则在局部 变量的作用范围内,外部变量不起作用。 第70题:在一个C源程序文件中,若要定义一个只允许在该源文件中全部函 数运用的变量,则该变量须要的存储类别是DoA.B.C.D.extern register auto static 第71题:C语言中,对于存储类型为D的变量,只有在运用它们时才占 用内存单元。A.B.C.D.static和auto register和extern register和static auto和register第72题:C语言规定,调用一个函数时,实参变量和形参变量之间的数据传 递方式是_B。A.地疝传递B.值传递C.由实参传给形参,并由形参传回来给实参D.
18、由用户指定传递方式第73题:以下描述错误的是D。A.不同函数中可以运用相同的变量名B.形式参数是局部变量C. 一个函数内部定义的变量只能在本函数范围有效D.在一个函数内部的复合语句中定义的变量可以在本函数范 围内有效 第74题:C语言中函数返回值的类型是由_D确定的。A. return语句中的表达式类型B.调用该函数的主调函数类型C.调用函数时临时D.定义函数时所指定的函数类型第75题:已知int* p();这里的p是CoA.指向int类型的指针变量B. int类型的指针数组C. 一个函数,该函数的返回值是指向int类型的指针变量D. 一个指向函数的指针变量,该函数的返回值是int类型 第76
19、题:以下叙述中错误的是COA.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B.在C语言中,在调用函数时,实参和对应形参在类型上只需 赋值兼容C.在C语言中,外部变量的隐含类别是自动存储类别D.在C语言中,函数形参的存储类型是自动(auto)类型的变 量第77题:已知函数abc的定义为:void abc ()则函数定义中void的含义是 AoA.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回C.执行函数abc后,可以返回随意类型D.以上3个答案全是错误的第78题:以下描述正确的是COA. C语言程序总是从第一个定义的函数起先执行B.在C语言程序中,要调用的函数
20、必需在main。函数中定义C. C语言程序总是从main ()函数起先执行D. C语言程序中的main。函数必需放在程序的起先部分第79题:C语言程序由函数组成,它的BA.主函数必需在其他函数之前,函数内可以嵌套定义函数B.主函数可以在其他函数之后,函数内不行以嵌套定义函数 C.主函数必需在其他函数之前,函数内不行以嵌套定义函数D.主函数必需在其他函数之后,函数内可以嵌套定义函数第80题:选择下面程序的运行结果 A#include main() int k=l;char c=Ado switch (c+) case A case B case C case D case Ek+; break;
21、k一;k+=2; break;k=k%2; continue;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 ( a%d %d ” , x一, y);)A. 10 1 9 2B. 9876C. 10 9 9 0D. 10 10 9 1第82题:若a、b、c、d、t均为int类型变量,则执行
22、以下程序段后的结果为COttdefine MAX (A, B) (A) (B) ? (A) : (B)ttdefine PRINT(Y) printf( “Y=%dn” , Y)a=1; b=2; c=3; d=4;t=MAX(a+b, c+d);PRINT(t);A. Y=3B.存在语法错误C. Y=7D. Y=0第83题:阅读程序,写出程序的输出结果_B。ftinclude main () char i, j;for(i=, O , j= 9 ; ij; i+, j) printf ( %c%c” , i, j);printf ( n” );)A. 01234567890B. 091827
23、3645C. 9876543210D.以上3个答案均不对第84题:阅读程序,写出程序的输出结果 D#include main() int i=0, j=0, k=0, m;for (m=0; m4; m+)switch(m) case 0: i=m+;case 1: j=m+;case 2: k=m+;case 3: m+;)printf( n%d, %d, %d, %dv , i, j, k, m); )A. 0,0,2,4B. 0,1,2,3C. 0,1,2,4D. 0,1,2,5第85题:假如下列程序可以正常运行,则当从键盘输入字母A时,输出结果为Bo#include main () c
24、har ch;ch=getchar ();switch(ch) case 65: printf ( “%c”,A,);case 66: printf(,B);default: printf(, other);)A. AB. ABotherC. AotherD.编译错误,无法运行第86题:下列程序的运行结果是CO ttinclude main () int a=2, b=-1, 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 ( a%
25、d ”, x=2);while(!(-x);A. 1B. 3 0C. 1 -2D.死循环第88题:若int a=5;则执行以下语句后,打印的结果为A do printf( %2dn,a一一);while(!a);A. 5B.不打印任何内容C. 4D.陷入死循环第89题:若int i, x;则for(i=x=0; i9&x!=5; i+, x+)限制的循环体 将执行 C次。A. 10B. 9C. 5D. 6第90题:定义inti=l;则执行语句while(i+5);后,i的值为 D.A. 3B. 4C. 5D. 6第91题:在while(x)语句中的x与下面条件表达式等价的是DoA. X0B.
26、x=lC. x!=lD. x!二 0第92题:下面的for语句 Cofor (x=0, y=0; (y !=123)&(x4) ; x+);A.是无限循环B.循环次数不定C.循环执行4次D.循环执行3次第93题:执行语句for(i=0; i+3;);后,变量i的值为C。A. 2B. 3C. 4D. 5第94 题:(117)若有宏定义#define MOD(x%y) x%y,则执行以下语句后的输出为 Boint z, a=15, b=100;z=MOD (b, a);printf( %dn” , z+);A. 11B. 10C. 6D.宏定义不合法第95题:以下描述错误的是BoA. break语
27、句不能用于循环语句和switch语句外的任何其他语 句B. 在switch语句中运用break语句或continue语句的作用相同C.在循环语句中运用continue语句是为了结束本次循环,而不 是终止整个循环D.在循环语句中运用break语句是为了使流程跳出循环体,提 前结束循环第96题:在下面的条件语句中(其中si和s2表示是C语言的语句),只有一 个在功能上与其他3条语句不等价,它是DoA. if (a) si; else s2;B. if(a=0) s2; else si;B. 24C. 25D. 26第7题:阅读程序,选择程序的输出结果Botfinclude main () stat
28、ic char a = languagev , b口=“program”;char *ptrl=a, *ptr2=b;int k;for (k=0; k7; k+)if (* (ptrl+k)二二*(ptr2+k) printf%c , *(ptrl+k);A. gaeB. gaC. languageD.有语法错误第8题:函数调用strcat (strcpy (strl, str2), str3)的功能是C。A.将串strl复制到串str2中,然后再连接到str3之后B.将串strl连接到串str2之后,再复制到str3之中C.将串str2复制到串str 1中,然后再将串str3连接到串str
29、 1之 后D.将串str2复制到串strl中,再将串str 1连接到str3之后第9题:设有以下程序段,则在main函数中运用语句_D是无意义的。 main() int min();C. if(a!=0) si; else s2;D. if(a=0) si; else s2;第97题:为了推断两个字符串si和s2是否相等,应当运用DoA. if (sis2)B. if (sl=s2)C. if(strcpy(si, s2)D. if(strcmp(si, s2)-0)第98题:若要求在if后一对圆括号中表示条件“a不等于0成立”,则能正确 表示这一关系的表达式为DoA. a0B. ! aC.
30、a=0D. a第99 题:(116)要推断char类型变量m是否是数字,可以运用下列表达式B。A. 0=m&m=9B. O=m&m二9C. 0”二m&m二 9”D.前面3个答案均是错误的第100题:以下程序的输出结果是D。main () int a=l, b=4, k;k=(+a0)&! (ba, *p=a0;则以下能够正确表示数组元素al 2的表达式是DoA. *(ptr+l) 2)B. * (* (p+5)C. (*ptr+l)+2D. *(*(a+l)+2)第26题:已知char *s;正确的语句是_B。A. s二 computer v ;B. *s二 computer v ;C. *s
31、=computer”;D. *s=A:第27题:已知char s20= programming , *ps=s;则不能引用字母。的 表达式是_AoA. ps+2B. s2C. ps 2D. ps+=2, *ps第28题:已知char b5, *p=b;则正确的赋值语句是C。A. b二“ abed” ;B. *b= abed” ;C. p二 abed” ;D. *p二 abed” ;第29题:已知char s100; int i;则在下列引用数组元素的语句中,错误 的表示形式是D.A. si+10B. *(s+i)C. *(i+s)D. *(s+)+i)第30题:已知char s10, *p=s;则下列语句中,错误的语句是BA. p=s+5;B. s=p+s;C. s2=p4D. *p=s0;第31题:(103)以下程序的输出结果是D。#include main ()int x=10, y=10;printf ( u%d %dn”,x-,-y);A. 10 10B. 9 9C. 9 10D. 10 9第32题:
限制150内