当前位置:文档之家› C语言选择题题库

C语言选择题题库

C语言程序设计题库说明一本题库适用对象计算机应用技术计算机软件软件技术计算机网络技术与计算机控制技术等专业二本题库包含有175道选择题三本题库所有题目均附有答案一、选择题下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。

1、不合法的整数是()。

A)0x35 B)43.6 C)0532 D)-3462、下列合法的字符常量是()。

A)“f” B)x C)65 D)‘\Xab’3、设有整型变量x,单精度变量y=,表达式x=float(y*3+((int)y%4))执行后,x的值为()。

A)17 B)17.500000 C) D)4、在C语言中,负整数在内存中以()形式释放。

A)补码 B)BCD码 C)反码 D)十进制数5、在C语言中,要求参加运算的数必须是整数的运算符是()。

A)/ B)!C)% D)= =6、()是C语言中非法的数据类型关键字。

A)float B)singed C)integer D)Char7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为()。

A)1 B)5 C)6 D)以上三个答案都不正确8、下列语句的输出结果是()。

printf(“%f\n”,(float)(2+4)/2);A)有语法错误不能通过编译 B)3 C)D)9、C语言中,整数-8在内存中的存储形式是()。

A)1111,1111,1111,1000 B)1000,0000,0000,1000 C)0000,0000,0000,1000 D)1111,1111,1111,0111 10、设C语言中,int类型数据占2个字节,则long类型数据占()个字节。

A)1 B)2 C)8 D)411、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。

A)a=(a*100+/ B)a=(a*100+/100C)a=(int)(a*100+/ D)a=(a/100+*12、定义a为整型,下列表达式a=3>6的运行后,a的值为()。

A)0 B)1 C)3 D)表达式错误13、如果a=1,b=2,c=3,d=4,则条件表达式a>ba:c>dc:d的值为()。

A)1 B)2 C)3 D)414、对于条件表达式(M)(a++):(a--),其中的表达式M等价于()。

A)M= =0 B)M= =1 C)M!=0 D)M!=115、在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是()。

A)(2>x>-2)||(4>x>8)B)((x<=-2)||(x>=2)||((x>4)||(x>=8))C)(x<2)&&(x>=-2)&&(x>4)&&(x<8)D)(x>-2)&&(x>4)||(x<8)&&(x<2)16、已知字母a的ASC||的十进制代码为97,则执行下列语句后输出为()。

Char a=‘a’;a--;printf(“%d,%c\n”,a+‘2’-‘0’,a+‘3’-‘0’);A)a,c B)a—运算不合法,故有语法错误C)98,c D)格式描述和输出项不匹配,输出无定值17、下列语句中错误的是()。

A)x=sizeof(int); B)x=sizeof;C)printf(“%d”,a=a+1,b--,c+1);D)printf(“%d”,++x,x++);18、C语言中,逻辑“真”等价于()。

A)大于零的数 B)大于零的整数C)非零的数 D)非零的整数19、下列语句中,符合语法的语句式()。

A)a+b=3 B)a=7 C)a=c+b+3=6; D)a=8,b=a+7;20、若x为float型变量,则以列程序段结果是()。

x=;printf(“%-2.1f”,x);A)输出格式描述符的域宽度不够,不能输出B)输出为C)输出为 D)输出为21、下面函数的功能是()。

Int funl(char*x){char*y=x;while(*y++);return(y-x-1);}A)求字符串的长度 B)比较两个字符串的大小 C)将字符串x复制到字符串yD)将字符串x连接到字符串y后面22、指针变量a所指的字符串长度为()。

Char*a=”\n\”My Name is \”Zhang Li\”\n”;A)26 B)27 C)28 D)2323、若有以下说明和语句,则输出结果是()。

Char*sp=”\\\”\n”;Printf(“%d”,strlen(sp));A)6 B)3 C) 5 D)字符串中有非法自负,输出值不定24、若有以下的说明语句,则对字符串中字符的不正确引用是(其中0<=i<6)( ).Char*strp=“string”;A)*strp B)*(strp+i) C)strp[i] D)strp25、函数调用:strcat(strcpy(str1,str2),str3)的功能是()。

A)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3之后26、若使用下述程序段将整数12和浮点数分别赋给变量a和b,那么输入应该式()。

int a;float b;scanf(“a=%d,b=%f”,&a,&b);A)12 B)a=12, b= C)12, D)a=12 b=27、对下面的程序说法正确的是()。

main(){int x+3,y=0,z=0;if(x=y+z)printf(“****”);elseprintf(“####”);}A)有语法错误,不能通过编译 B)输出为**** C)输出为# # # # D)通过编译,但是不能运行28、下面程序的输出是()。

main(){int x=10,y=3;printf(“%d\n”,y=x%y);}A)0 B)1 C)3 D)不确定的值29、()是不正确的C语言赋值语句。

A)a=a+1; B)i++; C)a*=1,b=8; D)a=330、C语言程序的三种基本程序是()。

A)顺序结构,选择结构,循环结构 B)递归结构,循环结构,转移结构C)嵌套结构,递归结构,顺序结构 D)循环结构,转移结构,顺序结构31、执行下面语句后的输出结果为()。

int i=-1;if (i<=0)printf(“****\n”);i=2;elseprintf(“%%%%\n”);A)**** B)%% C)%%%%c D)有语法错误。

不能正确执行32、下述语句中,()中的if 语法有错误。

A)if(x y);B)if(x= =y)x+y;C)if(x!=y)scanf(“%d”,x)elsescanf(“%d”,y);D)if(x y){x++;y++;}33、以下程序段()。

int x=1,y=4;printf(x<y”x=%d”:”y=%d”,x,y);A)输出控制格式错误 B)输出:x=1 C)输出:y=1 D)输出:y=434、为了避免嵌套的条件语句if-else的二义性,C语言规定:else 与()是正确的。

A)缩排位置相同的if B)其之前最近的if C)其之后if D)同一行上的if35、下列关于switch语句和break语句的结论中,只有()是正确的。

A)break语句是switch语句的一部分B)在switch语句中可以根据需要使用或不使用break语句C)在switch语句中必须使用break语句D)以上三个结论有两个是正确的36、设I和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++),下列哪句话正确( )。

A)执行8次B)执行9次 C)是无限循环 D)循环体一次也不执行37、下述程序的输出结果是()。

#include<>main(){ int Y=100;while(Y--);printf(“y=%d”,Y);}A)Y=0 B)Y=1 C)Y=随机值D)Y=-138、以下for循环语句()。

for(; ;)printf(“*”);A)判断循环结束的条件不合法B)是无限循环 C)循环一次也不执行 D)循环只执行一次39、以下程序段执行后输出结果()。

int i;for(i=1; ; i++)printf(“%d”,i++);A)1 B)2 C)3 D死循环40、char(*A)[5],则标识符A的意义时()。

A)A是一个指向有5个字符型元素的指针变量B)A是一个有5个元素的一维数组,每个元素指向字符型的指针变量C)A是一个指向字符型的函数的指针变量D)A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量41、下述程序的运行结果为()。

#include<>void abc(char*str){int a, b;for(a=b=0;str{a}!=’\0’;a++)if(str[a]!=’c’)tr[b++]=str[a];str[b]=’\0’;}void main (){char str []=”abcdef”;abc(str);printf(“str[]=”%s”,str);}A)STR[]=abdef B)STR[]=abcdef C)STR[]=aD)STR[]=ab42、下列各数组定义程序段,正确的是()。

A)int n=10;int a[n];B)main(){char str[10]=”a man”}C)static int[][3]={{0,1,2},{80,89,2}};D)static char[5]=“i am a student.”;43、以下main函数调用invert函数将串s的元素按逆序重新存放,()是不能正确实现此功能的程序。

void main(){char srt[]=“String”;invert(s);···}A)void invert(char s[]){int t,I,j;for(i=0,j=strlen(s)-1;i<j;i++,--j){t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;}}B)void invert(char *s){int t,i,j;for(i=0,j=strlen(s);i<j;i++,--j) {t=s[i];s[j]=s[i];s[i]=t;}}C)void invert(char *s){int t,*h,*p;h=s;p=s+strlen(s)-1;while(h<p)t=*h,h=*p,*p=t,p--,h++;}D)void invert(char *s){int t, *p;p=s+stlen(s)-1;while(s<p){t=*s;*s++=*p;*p--=t;}}44、下列程序的输出结果是()。

相关主题