为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > C语言试题选择题及答案

C语言试题选择题及答案

2021-08-19 22页 doc 78KB 10阅读

用户头像 个人认证

文豪

暂无简介

举报
C语言试题选择题及答案集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)C语言试题选择题及答案★第1题:阅读程序,选择程序的运行结果___A___。#includemain(){intx;x=try(5);printf(“%d\n”,x);}try(intn){if(n>0)return(n*try(n-2));elsereturn(1);} A. 15 B. 120 C. 1 D. 前面3个答案均是错误的第2题:在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变...
C语言试题选择题及答案
集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)C语言试题选择题及答案★第1题:阅读程序,选择程序的运行结果___A___。#includemain(){intx;x=try(5);printf(“%d\n”,x);}try(intn){if(n>0)return(n*try(n-2));elsereturn(1);} A. 15 B. 120 C. 1 D. 前面3个答案均是错误的第2题:在下列结论中,只有一个是正确的,它是___A___。 A. 递归函数中的形式参数是自动变量 B. 递归函数中的形式参数是外部变量 C. 递归函数中的形式参数是静态变量 D. 递归函数中的形式参数可以根据需要自己定义存储类型★第3题:阅读程序,选择程序的输出结果__A___。#includef(intx,inty){return(y-x);}main(){int(*g)(int,int);inta=5,b=6,c=2;g=f;c=(*g)(a,b);printf(“%d\n”,c);} A. 1 B. 2 C. 3 D. 前面3个答案均是错误的第4题:阅读程序,选择程序的输出结果__D___。#includechar*p=”abcdefghijklmnopq”;main(){while(*p++!=’e’);printf(“%c\n”,*p);} A. c B. d C. e D. f★第6题:阅读程序,选择程序的输出结果___D___。#includevoidprtv(int*x){printf(”%d\n”,++*x);}main(){inta=25;prtv(&a);} A. 23 B. 24 C. 25 D. 26第7题:阅读程序,选择程序的输出结果___B___。#includemain(){staticchara[]=”language”,b[]=”program”;char*ptr1=a,*ptr2=b;intk;for(k=0;k<7;k++)if(*(ptr1+k)==*(ptr2+k))printf(”%c”,*(ptr1+k));} A. gae B. ga C. language D. 有语法错误★第8题:函数调用strcat(strcpy(str1,str2),str3)的功能是__C___。 A. 将串str1复制到串str2中,然后再连接到str3之后 B. 将串str1连接到串str2之后,再复制到str3之中 C. 将串str2复制到串str1中,然后再将串str3连接到串str1之后 D. 将串str2复制到串str1中,再将串str1连接到str3之后★第9题:设有以下程序段,则在main函数中使用语句__D___是无意义的。main(){intmin();inta,b,c,(*p)();p=min;…}min(x,y)intx,y;{…} A. printf(”%d\n”,min(a,b)); B. c=min(a,b); C. c=(*p)(a,b); D. p++;第10题:已知staticinta[2][3]={2,4,6,8,10,12};正确表示数组元素地址的是__A___。 A. *(a+1) B. *(a[1]+2) C. a[1]+3 D. a[0][0]第11题:已知inti,x[3][4];则不能将x[1][1]的值赋给变量i的语句是___C___。 A. i=*(*(x+1)+1) B. i=x[1][1] C. i=*(*(x+1)) D. i=*(x[1]+1)★第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;第13题:函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是___D___。 A. funa(int*x,int*y){int*p;*p=x;*x=*y;*y=*p;} B. funb(intx,inty){intt;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题:已知intx[]={1,3,5,7,9,11},*ptr=x;则不能正确引用数组元素的语句是___B___。 A. *(ptr--) B. *(--ptr) C. *(ptr++) D. *(++ptr)第15题:已知int*ptr1,*ptr2;均指向同一个int类型一维数组中的不同元素,k为int类型变量,则下面错误的赋值语句是___B___。 A. k=*ptr1+*ptr2; B. ptr2=k; C. ptr1=ptr2; D. k=*ptr1*(*ptr2);★第16题:已知chars1[10],*s2=”ab\0cdef”;则执行语句strcpy(s1,s2);后,变量s1的内容为___A____。 A. ab B. cdef C. ab\0cdef D. 内容不定第17题:以下有关宏替换叙述中,错误的是___D___。 A. 宏替换不占用运行时间 B. 宏无类型名 C. 宏替换只是字符替换 D. 宏名必须用大写字母表示★第18题:C语言主函数main最多允许有___B___个参数。 A. 1 B. 2 C. 0 D. 3★第19题:C语言的编译系统对宏定义是___D___。 A. 在程序运行时进行替换处理 B. 在程序连接时进行处理 C. 和源程序中其他C语句同时进行编译的 D. 在对源程序中其他成分正式编译之前进行处理的第20题:已知int**p;则变量p是___B___。 A. 指向int的指针 B. 指向指针的指针 C. int型变量 D. 以上3种说法均是错误的★第21题:已知inti;char*s=”a\045+045\’b”;执行语句for(i=0;*s++;i++);之后,变量i的结果是__B___。 A. 7 B. 8 C. 9 D. 以上3个答案都是错误的第22题:已知inti=0,j=1,*p=&i,*q=&j;错误的语句是___D___。 A. i=*&j; B. p=&*&i; C. j=*p++; D. i=*&q;第23题:已知inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;则值为3的表达式是___A___。 A. p+=2,*(p++) B. p+=2,*++p C. p+=3,*p++ D. p+=2,++*p★第24题:已知inta[3][4],*p=a;p+=6;那么*p和__D___的值相同。 A. *(a+6) B. *(&a[0]+6) C. *(a[1]+2) D. *(&a[0][0]+6)第25题:已知inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];则以下能够正确表示数组元素a[1][2]的表达式是__D___。 A. *((ptr+1)[2]) B. *(*(p+5)) C. (*ptr+1)+2 D. *(*(a+1)+2)第26题:已知char**s;正确的语句是__B___。 A. s=”computer”; B. *s=”computer”; C. **s=”computer”; D. *s=’A’;★第27题:已知chars[20]=”programming”,*ps=s;则不能引用字母o的表达式是__A___。 A. ps+2 B. s[2] C. ps[2] D. ps+=2,*ps第28题:已知charb[5],*p=b;则正确的赋值语句是__C__。 A. b=”abcd”; B. *b=”abcd”; C. p=”abcd”; D. *p=”abcd”;★第29题:已知chars[100];inti;则在下列引用数组元素的语句中,错误的表示形式是___D___. A. s[i+10] B. *(s+i) C. *(i+s) D. *((s++)+i)第30题:已知chars[10],*p=s;则下列语句中,错误的语句是__B___。 A. p=s+5; B. s=p+s; C. s[2]=p[4] D. *p=s[0];第31题:(103)以下程序的输出结果是___D___。#includemain(){intx=10,y=10;printf(“%d%d\n”,x--,--y);} A. 1010 B. 99 C. 910 D. 109第32题:已知double*p[6];它的含义是___C___。 A. p是指向double类型变量的指针 B. p是double类型数组 C. p是指针数组 D. p是数组指针★第33题:说明语句int*(*p)();的含义是___D___。 A. p是一个指向int型数组的指针 B. p是指针变量,它构成了指针数组 C. p是一个指向函数的指针,该函数的返回值是一个整型 D. p是一个指向函数的指针,该函数的返回值是一个指向整型的指针第34题:已知inta,*p=&a;则下列函数调用中错误的是___D___。 A. scanf(”%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”删除。请选择填空。#includemain(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!=’\0’;i++)if(s[i]!=’c’)___A____s[j]!=’\0’;puts(s);} A. s[j++]=s[i]; B. s[++j]=s[i]; C. s[j]=s[i];j++; D. s[j]=s[i]第37题:阅读下列程序,选择程序的运行结果___B___。#includemain(){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★第38题:下述程序的输出结果是__A___。#includemain(){printf(“%f”,2.5+1*7%2/4);} A. 2.500000 B. 2.750000 C. 3.375000 D. 3.000000★第39题:下面程序的输出结果是___B___。#includemain(){printf(“%d\n”,NULL);} A. -1 B. 0 C. 1 D. 程序是错误的第40题:在下面的程序段中,每行前面的数字表示行号,则下面程序___D___。1main()2{3inta[3];4inti;5for(i=0;i<3;i++)scanf(“%d”,&a[i]);6for(i=1;i<3;i++)a[0]=a[0]+a[i];7printf(“%f\n”,a);8} A. 没有错误 B. 第5行有错误 C. 第6行有错误 D. 第7行有错误★第41题:在下面的程序段中,每行前面的数字表示行号,则下面程序___C___。1main()2{3floata[10];4inti;5for(i=0;i<3;i++)scanf(“%d”,&a[i]);6for(i=1;i<3;i++)a[0]=a[0]+a[i];7printf(“%f\n”,a[0]);8} A. 没有错误 B. 第3行有错误 C. 第5行有错误 D. 第7行有错误★第42题:下面程序段的运行结果是__B__。charc[]=”\t\v\\\0will\n”;printf(“%d”,strlen(c)); A. 14 B. 3 C. 9 D. 字符串中有非法字符,输出值不确定第43题:下面程序段的运行结果是___D___(其中~表示空格)。chara[7]=”abcdef”,b[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]); A. ~ B. \0 C. e D. f第44题:若要求:如果字符串s1大于字符串s2则要执行if语句的语句1,应当使用___D___。 A. if(s1>s2) B. if(strcmp(s1>s2)) C. if(strcmp(s2>s1)>0) D. if(strcmp(s1>s2)>0)第45题:已知chara[20],b[20];则以下正确的输入语句是___B___。 A. gets(a,b); B. scanf(“%s%s”,a,b); C. scanf(“%s%s”,&a,&b); D. gets(“a”),gets(“b”);第46题:若二维数组a由m列,则在a[i][j]之前的元素个数为___B____。 A. j*m+i B. i*m+j C. i*m+j-1 D. i*m+j+1第47题:下列数组说明语句中错误的是___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’};第48题:在C语言中,二维数组元素在内存中的存放顺序是__A___。 A. 按行存放 B. 按列存放 C. 由用户自己定义 D. 由编译器决定★第49题:已知staticinta[3][4];则数组a中个元素__B___。 A. 可在程序的运行阶段得到初值0 B. 可在程序的编译阶段得到初值0 C. 不能得到确定的初值 D. 可在程序的编译或运行阶段得到初值0★第50题:语句typedeflongclass的作用是___D___。 A. 建立了一种新的数据类型 B. 定义了一个整型变量 C. 定义了一个长整型变量 D. 定义了一个新的数据类型标识符第51题:已知staticinta[3][4]={0};则下面正确的叙述是__D___。 A. 只有元素a[0][0]可以得到初值0 B. 此说明语句是错误的 C. 数组a中每个元素都可得到初值,但其值不一定为0 D. 数组a中每个元素均可得到初至0第52题:以下能对外部的二维数组a进行初始化错误的语句是___C___。 A. inta[2][3]={0}; B. inta[][3]={{1,2},{0}}; C. inta[2][3]={{1,2},{3,4},{5,6}}; D. inta[][3]={1,2,3,4,5,6};★第53题:以下能对外部的二维数组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}};★第54题:(105)为了求i的3次方,请选择一个表达式填入___D____,使程序可以正确执行。#defineCUBE(x)(x*x*x)main(){inti=4;print(“\n%d”,CUBE());} A. i*i*i B. x*x*x C. x D. i第55题:已知inta[10];则对a数组元素的正确引用是__D___。 A. a[10] B. a[3.5] C. a(5) D. a[10-10]★第56题:在C语言中,引用数组元素时,其数组下标的数据类型允许是__C___。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式★第57题:已知charstr[]=”ab\n\012\\\””;则执行语句:printf(“%d”,strlen(str));的结果是___C____. A. 3 B. 4 C. 6 D. 12第58题:下面关于字符串的说明中,错误的是__A___。 A. charstr[7]=”FORTRAN”; B. charstr[]=”FORTRAN”; C. char*str=”FORTRAN”; D. charstr[]={’F’,’O’,’R’,’T’,’R’,’A’,’N’,’\0’};第59题:以下程序段的输出是___A____。staticchara[]=“-12345”;intk=0,symbol,m;if(a[k]==’+’||a[k]=’-’)symbol=(a[k++]==’+’)1:-1;for(m=0;a[k]>=’0’&&a[k]<=’9’;k++)m=m*10+a[k]-‘0’;printf(“number=%d\n”,symbol*m); A. number=-12345 B. number=12345 C. number=-10000 D. number=10000第60题:已知charstr1[10],str2[10]={“books”};则在程序中能够将字符串“books”赋给数组str1的正确语句是___B___。 A. str1={“books”}; B. strcpy(str1,str2); C. str1=str2 D. strcpy(str2,str1);★第61题:若有以下语句,则正确的描述是___B___。staticcharx[]=“12345”;staticchary[]={‘1’,‘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元素的数组,应当选择语句___A____。 A. inta[10]; B. inta[2,5]; C. inta[]; D. int*a[10];★第64题:已知chars[5],c;registercharb;则调用函数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. staticcharword[]={‘T’,‘u’,‘r’,‘b’,‘o’,‘\0’}; B. staticcharword[]={“Turbo\0”}; C. staticcharword[]=“Turbo\0”; D. staticcharword[]=‘Turbo\0’;★第66题:请选择下列程序的运行结果___A___。#includeintd=1;fun(intp){intd=5;d+=p++;printf(“%d”,d);}main(){inta=3;fun(a);d+=a++;printf(“%d”,d);} A. 84 B. 96 C. 94 D. 85第67题:请选择下列程序的运行结果__D___。#includetry(){staticintx=3;x++;return(x);}main(){inti,x;for(i=0;i<=2;i++)x=try();printf(“%d\n”,x);} A. 3 B. 4 C. 5 D. 6★第68题:请选择下列程序的运行结果___C___。#includefun(int*p){inta=10;*p=a;++a;}main(){inta=5;fun(&a);printf(“%d\n”,a);} A. 5 B. 6 C. 10 D. 11★第69题:以下错误的描述为__C___。 A. 在函数之外定义的变量称为外部变量,外部变量是全局变量 B. 在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量 C. 外部变量定义和外部变量声明的含义相同 D. 若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。★第70题:在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是___D___。 A. extern B. register C. auto D. static★第71题:C语言中,对于存储类型为___D___的变量,只有在使用它们时才占用内存单元。 A. static和auto B. register和extern C. register和static D. auto和register第72题:C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是__B___。 A. 地址传递 B. 值传递 C. 由实参传给形参,并由形参传回来给实参 D. 由用户指定传递方式第73题:以下描述错误的是___D___。 A. 不同函数中可以使用相同的变量名 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语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值 B. 在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容 C. 在C语言中,外部变量的隐含类别是自动存储类别 D. 在C语言中,函数形参的存储类型是自动(auto)类型的变量第77题:已知函数abc的定义为:voidabc(){……}则函数定义中void的含义是___A___。 A. 执行函数abc后,函数没有返回值 B. 执行函数abc后,函数不再返回 C. 执行函数abc后,可以返回任意类型 D. 以上3个答案全是错误的第78题:以下描述正确的是___C___。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分★第79题:C语言程序由函数组成,它的___B___。 A. 主函数必须在其他函数之前,函数内可以嵌套定义函数 B. 主函数可以在其他函数之后,函数内不可以嵌套定义函数 C. 主函数必须在其他函数之前,函数内不可以嵌套定义函数 D. 主函数必须在其他函数之后,函数内可以嵌套定义函数★第80题:选择下面程序的运行结果___A___。#includemain(){intk=1;charc=’A’;do{switch(c++){case‘A’:k++;break;case‘B’:k--;case‘C’:k+=2;break;case‘D’:k=k%2;continue;case‘E’:k=k*2;break;default:k=k/3;}k++;}while(c<’F’);printf(“k=%d\n”,k);} A. k=1 B. k=15 C. k=12 D. 以上结果都不对第81题:阅读程序,写出程序的输出结果___D____。#includemain(){intx=10,y=10,i;floats;for(i=0;x>8;y=++i)printf(“%d%d”,x--,y);} A. 10192 B. 9876 C. 10990 D. 101091第82题:若a、b、c、d、t均为int类型变量,则执行以下程序段后的结果为___C___。#defineMAX(A,B)(A)>(B)(A):(B)#definePRINT(Y)printf(“Y=%d\n”,Y)…a=1;b=2;c=3;d=4;t=MAX(a+b,c+d);PRINT(t); A. Y=3 B. 存在语法错误 C. Y=7 D. Y=0第83题:阅读程序,写出程序的输出结果__B___。#includemain(){chari,j;for(i=’0’,j=’9’;imain(){inti=0,j=0,k=0,m;for(m=0;m<4;m++)switch(m){case0:i=m++;case1:j=m++;case2:k=m++;case3:m++;}printf(“\n%d,%d,%d,%d”,i,j,k,m);} A. 0,0,2,4 B. 0,1,2,3 C. 0,1,2,4 D. 0,1,2,5第85题:如果下列程序可以正常运行,则当从键盘输入字母A时,输出结果为___B___。#includemain(){charch;ch=getchar();switch(ch){case65:printf(“%c”,‘A’);case66:printf(“%c”,‘B’);default:printf(“%s”,“other”);}} A. A B. ABother C. Aother D. 编译错误,无法运行第86题:下列程序的运行结果是___C____。#includemain(){inta=2,b=-1,c=2;if(a流程
跳出循环体,提前结束循环第96题:在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其他3条语句不等价,它是____D____。 A. if(a)s1;elses2; B. if(a==0)s2;elses1; C. if(a!=0)s1;elses2; D. if(a==0)s1;elses2;第97题:为了判断两个字符串s1和s2是否相等,应当使用___D____。 A. if(s1==s2) B. if(s1=s2) C. if(strcpy(s1,s2)) D. if(strcmp(s1,s2)==0)★第98题:若要求在if后一对圆括号中表示条件“a不等于0成立”,则能正确表示这一关系的表达式为___D___。 A. a<>0 B. !a C. a=0 D. a第99题:(116)要判断char类型变量m是否是数字,可以使用下列表达式___B___。 A. 0<=m&&m<=9 B. ’0’<=m&&m<=’9’ C. ”0”<=m&&m<=”9” D. 前面3个答案均是错误的第100题:以下程序的输出结果是___D___。main(){inta=-1,b=4,k;k=(++a<0)&&!(b--<0);printf(“%d%d%d\n”,k,a,b);} A. 104 B. 103 C. 003 D. 004
/
本文档为【C语言试题选择题及答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索