二级C语言上机题库05.docx
- 文档编号:4594722
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:26
- 大小:23.29KB
二级C语言上机题库05.docx
《二级C语言上机题库05.docx》由会员分享,可在线阅读,更多相关《二级C语言上机题库05.docx(26页珍藏版)》请在冰豆网上搜索。
二级C语言上机题库05
一、选择题答案
1.下列选项中,合法的C语言关键字是
A)VAR
B)cher
C)integer
D)default
你所选择的答案是:
*,正确答案是:
B×
2.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是
A)-3
B)9
C)-12
D)6
你所选择的答案是:
*,正确答案是:
C×
3.以下程序的输出结果是
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(5,2,a);
printf("%d",a);
}
A)0
B)29
C)31
D)无定值
你所选择的答案是:
*,正确答案是:
C×
4.下列程序段的输出结果是
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
你所选择的答案是:
*,正确答案是:
A×
5.下列程序的输出结果是
main()
{chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
A)非法
B)a[4]的地址
C)5
D)3
你所选择的答案是:
*,正确答案是:
C×
6.以下程序的输出结果是
main()
{intx=0.5;charz='a';
printf("%d\n",(x<1)&&(z<'z'));}
A)0
B)1
C)2
D)3
你所选择的答案是:
*,正确答案是:
B×
7.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为
A)0
B)1
C)2
D)3
你所选择的答案是:
*,正确答案是:
C×
8.阅读以下程序:
main()
{intx;
scanf("%d",&x);
if(x--<5)printf("%d"'x);
elseprintf("%d"'x++);
}
程序运行后,如果从键盘上输人5,则输出结果是
A)3
B)4
C)5
D)6
你所选择的答案是:
*,正确答案是:
B×
9.以下程序的输出结果是
main()
{
intnum=0;
while(num<=2)
{num++;printf("%d\n",num);}
}
A)1
2
3
4
B)1
2
3
C)1
2
D)l
你所选择的答案是:
*,正确答案是:
B×
10.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回实参
D)传递方式由用户指定
你所选择的答案是:
*,正确答案是:
B×
11.以下程序的输出结果是
amovep(intp,int(a)[3],intn)
{inti,j;
for(i=0;i<;i++)
for(j=0;j } main() {int*p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); amovep(p,a,3); printf("%d%d\n",p[2],p[5]);free(p); } A)56 B)25 C)34 D)程序错误 你所选择的答案是: *,正确答案是: A× 12.以下程序的输出结果是 #defineM(x,y,z)x*y+z main() {inta=1,b=2,c=3; printf("%d\n",M(a+b,b+c,c+a)); } A)19 B)17 C)15 D)12 你所选择的答案是: *,正确答案是: D× 13.若有说明语句: inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是 A)scanf("%d%d%d",&a,&b,d); B)scanf("%d%d%d",&a,&b,&d); C)scanf("%d%d%d",a,b,d); D)scanf("%d%d%d",a,b,*d); 你所选择的答案是: *,正确答案是: A× 14.以下程序的输出结果是 main() { inta=5,b=4,c=6,d; printf("%d\n",d=a>b? (a>c? a: c): (b)); } A)5 B)4 C)6 D)不确定 你所选择的答案是: *,正确答案是: C× 15.以下程序段的输出结果是 chars[]="\\141\141abc\t"; printf("%d\n",strlen(s)); A)9 B)12 C)13 D)14 你所选择的答案是: *,正确答案是: A× 16.不合法的main函数命令行参数表示形式是 A)main(inta,char*c[]) B)main(intarc,char**arv) C)main(intargc,char*argv) D)main(intargv,char*argc[]) 你所选择的答案是: *,正确答案是: C× 17.以下程序的输出的结果是 intx=3; main() { voidncre(); inti; for(i=1;i } voidncre() { staticintx=1; x*=x+1; printf("%d",x); } A)33 B)22 C)26 D)25 你所选择的答案是: *,正确答案是: C× 18.若以下定义: structlink {intdata; strucklink*next; }a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构: ab datanextdatanext ┌──┬──┐┌──┬──┐ │5│┼──→│9│\0│ └──┴──┘└──┴──┘ ↑p c datanext ┌──┬──┐ │7││ └──┴──┘ ↑q 指针p指向变量a,q指向变量c。 则能够把c插入到a和b之间并形成新的链表的语句组是: A)a.next=c;c.next=b; B)p.next=q;q.next=p.next; C)p->next=&c;q->next=p->next; D)(*p).next=q;(*q).next=&b; 你所选择的答案是: *,正确答案是: C× 19.以下选项中合法的实型常数是 A)5E2.0B)E-3C).2E0D)1.3E 你所选择的答案是: *,正确答案是: D× 20.与数学式子对应的C语言表达式是 A)3*x^n(2*x-1) B)3*x**n(2*x-1) C)3*pow(x,n)*(1/(2*x-1)) D)3*pow(n,x)/(2*x-1) 你所选择的答案是: *,正确答案是: C× 21.若有以下程序: #include"stdio.h" main() { intk=2,i=2,m; m=(k+=i*=k);printf("%d,%d\n",m,i); } 执行后的输出结果是 A)8,6 B)8,3 C)6,4 D)7,4 你所选择的答案是: *,正确答案是: C× 22.有以下程序 floatfun(intx,inty) {return(x+y);} main() {inta=2,b=5,c=8; printf("%3.0f\n",fun(int)fun(a+c,b),a-c)); } 程序运行后的输出结果是 A)编译出错 B)9 C)21 D)9.0 你所选择的答案是: *,正确答案是: B× 23.有以下程序 intf(intn) {if(n==1)return1; elsereturnf(n-1)+1; } main() {inti,j=0; for(i=i;i<3;i++)j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是 A)4 B)3 C)2 D)1 你所选择的答案是: *,正确答案是: B× 24.有以下程序 inta=3; main() {ints=0; {inta=5;s+=a++;} s+=a++;printf("%d\n",s); } 程序运行后的输出结果是 A)8 B)10 C)7 D)11 你所选择的答案是: *,正确答案是: A× 25.有以下程序 main() {inti=10,j=1; printf("%d,%d\n",i--,++j); } 执行后输出结果是( )。 A)9,2 B)10,2 C)9,1 D)10,1 你所选择的答案是: *,正确答案是: B× 26.有如下程序 voidf(intx,inty) {intt; if(x } main() {inta=4,b=3,c=5; f(a,b);f(a,c);f(b,c); printf("%d,%d,%d\n",a,b,c); } 执行后输出结果是( )。 A)3,4,5 B)5,3,4 C)5,4,3 D)4,3,5 你所选择的答案是: *,正确答案是: D× 27.有以下程序 main() {intm[][3]={1,4,7,2,5,8,3,6,9}; inti,j,k=2; for(i=0;i<3;i++) {printf("%d",m[k][i]);} } 执行后输出结果是( )。 A)456 B)258 C)369 D)789 你所选择的答案是: *,正确答案是: C× 28.以下叙述中正确的是( )。 A)全局变量的作用域一定比局部变量的作用域范围大 B)静态(static)类别变量的生存期贯穿于整个程序的运行期间 C)函数的形参都属于全局变量 D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值 你所选择的答案是: *,正确答案是: B× 29.有以下程序 main() { inta=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a printf("%d,%d\n",k,m); } 程序运行后的输出结果是 A)0,0B)0,1C)1,0D)1,1 你所选择的答案是: *,正确答案是: C× 30.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )。 A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0; C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0; 你所选择的答案是: *,正确答案是: C× 31.有以下程序 main() {ints=0,a=1,n; scanf("%d",&n); do {s+=1;a=a-2;} while(a! =n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从键盘给n输入的值是( )。 A)-1 B)-3 C)-5 D)0 你所选择的答案是: *,正确答案是: B× 32.要求以下程序的功能是计算: s=1+1/2+1/3+……+1/10 main() {intn;floats; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是( )。 A)s=1.0; B)for(n=10;n>1;n--) C)s=s+1/n; D)printf("%6.4f\n",s); 你所选择的答案是: *,正确答案是: C× 33.有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。 A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n); D)voidfun(n,x); 你所选择的答案是: *,正确答案是: C× 34.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是( )。 A)int*i=NULL; B)float*f=NULL; scanf("%d",i);*f=10.5; C)chart='m',*c=&t; D)long*L; *c=&t;L='\0'; 你所选择的答案是: *,正确答案是: D× 35.以下能正确定义一维数组的选项是( )。 A)intnum[]; B)#defineN100 intnum[N]; C)intnum[0..100]; D)intN=100; intnum[N]; 你所选择的答案是: *,正确答案是: B× 36.有以下程序 main() { charstr[][20]={"Hello","Beijing"}; char*p=str[0]; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是( )。 A)0 B)5 C)7 D)20 你所选择的答案是: *,正确答案是: C× 37.有以下程序 main() {inti,n=0; for(i=2;i<5;i++) {do {if(i%3)continue; n++; }while(! i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是( )。 A)n=5 B)n=2 C)n=3 D)n=4 你所选择的答案是: *,正确答案是: D× 38.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 A)chars[10]="abcdefg";B)chart[]="abcdefg",*s=t; C)chars[10];s="abcdefg";D)chars[10];strcpy(s,"abcdefg"); 你所选择的答案是: *,正确答案是: C× 39.有以下程序(提示: 程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节) #include main() {FILE*fp;inti,a[4]={1,2,3,4},b; fp=fopen("data.dat","wb"); for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen("data.dat","rb"); fseek(fp,-2L*sizeof(int).SEEK_END); fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp); printf("%d\n",B); } 执行后输出结果是 A)2B)1C)4D)3 你所选择的答案是: *,正确答案是: D× 40.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( )。 A)abs(x-y)<10 B)x-y>-10&&x-y<10 C)! (x-y)<-10||! (y-x)>10 D)(x-y)*(x-y)<100 你所选择的答案是: *,正确答案是: C× 41.有以下程序 main() {inti=0,x=0; for(;;) { if(i==3||i==5)continue; if(i==6)break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是( )。 A)10 B)13 C)21 D)程序进入死循环 你所选择的答案是: *,正确答案是: D× 42.以下能正确定义二维数组的是( )。 A)inta[][3]; B)inta[][3]=2{2*3}; C)inta[][3]={}; D)inta[2][3]={{1},{2},{3,4}}; 你所选择的答案是: *,正确答案是: C× 43.有以下程序 intf(inta) {returna%2;} main() {ints[8]={1,3,4,2,3,6},i,d=0; for(i=0;f(s[i]);i++) {d=d+s[i];printf("%d,%d\n",i,s[i]);} printf("%d\n",d); } 程序运行后的输出结果是( )。 A)9 B)4 C)19 D)21 你所选择的答案是: *,正确答案是: B× 44.有以下定义和语句 inta[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1]; 则*p[0]+1)所代表的数组元素是( )。 A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2] 你所选择的答案是: *,正确答案是: C× 45.有以下程序 main() {intm,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( )。 A)m=123n=456p=789 B)m=123n=456p=789 C)m=123,n=456,p=789 D)123456789 你所选择的答案是: *,正确答案是: A× 46.有以下程序 main() { intp[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7)if(p[i]%2)j+=p[i]; printf("%d",j); } 程序运行后的输出结果是( )。 A)42 B)45 C)56 D)60 你所选择的答案是: *,正确答案是: B× 47.有以下程序 voidf(int*x,int*y) {intt; t=*x;*x=*y;*y=t; } main() {inta[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p { f(p,q); p++; q--; } for(i=0;i<8;i++) printf("%d,",a[i]); } 程序运行后的输出结果是( )。 A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4, C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1, 你所选择的答案是: *,正确答案是: D× 48.有以下程序 main() { intc=35;printf("%d",c&c); } 程序运行后的输出结果是( )。 A)0 B)70 C)35 D)1 你所选择的答案是: *,正确答案是: C× 49.以下叙述中错误的是( )。 A)C语句必须以分号结束 B)复合语句在语法上被看作一条语句 C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句 你所选择的答案是: *,正确答案是: C× 50.以下关于函数的叙述中正确的是( )。 A)每个函数都可以被其它函数调用(包括main函数) B)每个函数都可以被单独编译 C)每个函数都可以单独运行 D)在一个函数内部可以定义另一个函数 你所选择的答案是: *,正确答案是: B× 51.若有语句: char*line[5];,以下叙述中正确的是( )。 A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义line是一个指向字符型函数的指针 你所选择的答案是: *,正确答案是: A× 52.设变量已正确定义,则以下程序不能正确计算f=n! 的程序段是( )。 A)f=1; for(i=1;i<=n;i++) f*=i; B)f=0; for(i=1;i<=n;i--) f*=i; C)f=1; for(i=n;i>1;i--) f=f*i; D)f=1; for(i=n;i>=2;i--) f=f*i 你所选择的答案是: *,正确答案是: B× 53.以下数组定义中错误的是 A)intx[][3]={0}; B)intx[2][3]={{1,2},{3,4},{5,6}}; C)ntx[][3]={{1,2,3},{4,5,6}}; D)intx[2][3]={1,2,3,4,5,6}; 你所选择的答案是: *,正确答案是: B× 54.已定义以下函数 intfun(int*p) {return*p;} fun函数返回值是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 上机 题库 05