二级C语言编程技巧与实例解析(山东联盟)智慧树知到答案章节测试2023年曲阜师范大学_第1页
二级C语言编程技巧与实例解析(山东联盟)智慧树知到答案章节测试2023年曲阜师范大学_第2页
二级C语言编程技巧与实例解析(山东联盟)智慧树知到答案章节测试2023年曲阜师范大学_第3页
二级C语言编程技巧与实例解析(山东联盟)智慧树知到答案章节测试2023年曲阜师范大学_第4页
二级C语言编程技巧与实例解析(山东联盟)智慧树知到答案章节测试2023年曲阜师范大学_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

绪论单元测试二级C语言的题型有单项选择题、程序填空题、程序改错题、程序设计题?

A:对

B:错

答案:A第一章测试构成c程序的基本单位是函数,有且只有一个主函数

A:对

B:错

答案:Ac语言一行可以写多条语句

A:错

B:对

答案:Bc语言一条语句只能写在一行上

A:对

B:错

答案:B一个c语言程序里可以有多个主函数

A:对

B:错

答案:B一个C程序是由一个或多个函数组成的

A:错

B:对

答案:BC语言中每个函数都能实现一个或多个功能

A:错

B:对

答案:B在c语言中,调用的可以是库函数,也可以是用户自定义的函数

A:对

B:错

答案:A’’是换行符

A:错

B:对

答案:Bc程序是用小写的英文字母编写的

A:对

B:错

答案:Ac语言主函数的名字是mian

A:对

B:错

答案:B第二章测试以下选项中可用作C程序合法实数的是

A:3.0e0.2

B:0.1e0

C:9.12E

D:E9

答案:B以下程序的输出结果是#include<stdio.h>voidmain(){

intx=10,y=10;

printf(“%d%d”,x–,–y);

}

A:910

B:99

C:1010

D:109

答案:D若有定义语句:inta=3,b=2,c=1;以下选项中错误的赋值表达式是

A:a=b=c+1;

B:a=1+(b=c=4);

C:a=(b=4)=3;

D:a=(b=4)+c;

答案:C写出下面程序的运行结果:#include<stdio.h>voidmain(){

intx,y,z;

x=y=1;

z=x++,y++,++y;

printf(“%d,%d,%d”,x,y,z);}

A:2,2,3

B:2,2,1

C:2,3,1

D:1,1,1

答案:C写出下面程序的运行结果:#include<stdio.h>voidmain(){inta=1,b=0;printf(“%d,”,b=a+b);printf(“%d”,a=2*b);}

A:1,1

B:3,2

C:1,2

D:2,2

答案:C写出下面程序的运行结果是#include<stdio.h>voidmain(){

inta,b,c=9;

a=3,b=4;

c%=a+b;

printf(“%d”,c)}

A:3

B:4

C:1

D:2

答案:D写出下面程序的运行结果:#include<stdio.h>

voidmain(){inta=4,b,c;

c=a+(b=2);

a+=a-=a*a;

printf(“%d,%d,%d”,a,b,c);}

A:-24,2,6

B:4,2,6

C:-8,2,6

D:-12,2,6

答案:Ac语言中整型常量有二进制整数、八进制整数、十进制整数

A:错

B:对

答案:A%求余运算符要求两侧的运算对象必须是整数

A:对

B:错

答案:A‘=’和’*=’的优先级是一样的

A:错

B:对

答案:B第三章测试有以下程序#include<stdio.h>voidmain(){chara,b,c,d;scanf(“%c%c“,&a,&b);c=getchar();d=getchar();printf(“%c%c%c%c”,a,b,c,d);}当执行程序时,按下列方式输入数据12↙34↙则输出结果是

A:12回车3

B:1234

C:12回车34

D:12

答案:A若有定义:inta,b;通过语句scanf(“%d;%d”,&a,&b);能把整数3赋给变量a,5赋给变量b的输入数据是

A:3,5

B:3分号5

C:35

D:3空格5

答案:B以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)

A:printf(“%c”,‘B’-1);

B:printf(“%c”,‘a’-32);

C:printf(“%d”,‘A’);

D:printf(“%c”,65);

答案:C已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中的大写字母转换为小写字母的语句是

A:c=c+32;

B:c=(‘A’+c)%26-‘a’;

C:c=c-‘A’+’a’;

D:c=(c-‘A’)%26+’a’;

答案:B在C语言中,每个语句和数据定义是用______

结束

A:分号

B:括号

C:逗号

D:句号

答案:A在C程序中printf函数和scanf函数是输出和输入函数

A:错

B:对

答案:B在C程序中printf函数和scanf函数是格式输出输入函数,用这两个函数时,必须指定格式

A:错

B:对

答案:B“c”是字符常量

A:对

B:错

答案:B下列程序段是对还是错inta,b,c;scanf(”%f%f%f”,a,b,c);

A:对

B:错

答案:Bgetchar函数一次只能接收一个字符

A:错

B:对

答案:B第四章测试以下程序段的输出结果是

#include<stdio.h>voidmain(){

int

i=1,j=1,k=2;

if((j++||k++)&&i++)printf(“%d,%d,%d”,i,j,k);}

A:2,2,3

B:

2,2,1

C:1,1,2

D:2,2,2

答案:D当c的值不为0时,能正确将c的值赋给变量a,b的是

A:a=c=b

B:(a=c)&&(b=c)

C:(a=c)||(b=c)

D:c=b=a

答案:B以下程序的运行结果是

#include<stdio.h>voidmain(){

int

a=010,b=10;

printf(“%d,%d”,++a,b--);

}

A:11,10

B:

011,10

C:

011,9

D:9,10

答案:D已知intn,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是

A:2,3

B:1,3

C:1,2

D:2,2

答案:D#include<stdio.h>voidmain()

{intx=1,y=0;if(!x)y++;elseif(x==0)

if(x)y+=2;

elsey+=3;printf(“%d”,y);}程序运行后的输出结果是

A:0

B:2

C:3

D:1

答案:A#include<stdio.h>main(){intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;}

case2:a++;b++;break;

case3:a++;b++;break;

default:a++;b++;}printf(“a=%d,b=%d”,a,b);}A.a=1,b=0B.a=2,b=1

C.a=1,b=1

D.a=2,b=2以上程序的输出是

A:a=1,b=1

B:a=2,b=2

C:a=1,b=0

D:a=2,b=1

答案:D下面程序的输出结果是:

#include<stdio.h>voidmain(){inta=2,b=-1,c=2;

if(a<b)

if(b<0)

c=0;

else

c+=1;

printf(“%d”,c);

}

A:2

B:1

C:4

D:3

答案:A下程序功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出,请填空。#include<stdio.h>voidmain(){intx=256;

printf(“%d-%d-%d”,_______,x/10%10,x/100);}

A:x%10

B:x/100%10

C:x/10

D:x/10%10

答案:A有以下程序#include<stdio.h>voidmain(){intx;

scanf(“%d”,&x);

if(x>15)printf(“%d”,x-5);

if(x>10)printf(“%d”,x);

if(x>5)printf(“%d”,x+5);}若程序运行时从键盘输入12,则输出结果为_________

A:7

B:1217

C:17

D:12

答案:B有以下程序(说明:字符0的ASCII码值为48)#include<stdio.h>main(){charc1,c2;

scanf(“%d”,&c1);

c2=c1+9;

printf(“%c%c”,c1,c2);}若程序运行时从键盘输入48,则输出结果为_________

A:0

B:09

C:9

D:‘0’‘9’

答案:B第五章测试下述for循环语句________inti,k;for(i=0,k=-1;k=1;i++,k++)

printf(“*”);

A:是无限循环

B:只循环一次

C:一次也不循环

D:判断循环语句结束的条件非法

答案:A**#include<stdio.h>main(){intx=0,y=5,z=3;while(z–>0&&++x<5)y=y-1;printf(“%d,%d,%d”,x,y,z);}

程序执行后的输出结果是

A:3,2,0

B:4,3,-1

C:5,-2,-5

D:3,2,-1

答案:D有以下程序#include<stdio.h>

main(){inti,s=0;

for(i=1;i<10;i+=2)s+=i+1;

printf(“%d”,s);}

程序执行后的输出结果是

A:自然数1~10的累加和

B:自然数1~9中的奇数之和

C:自然数1~10中的偶数之和

D:自然数1~9的累加和

答案:C以下程序执行后的输出结果是#include<stdio.h>main(){inti,n=0;for(i=2;i<5;i++){do

{if(i%3)continue;

n++;}

while(!i);

n++;}printf(“n=%d”,n);}

A:n=5

B:n=4

C:n=2

D:n=3

答案:B程序运行后的输出结果是#include<stdio.h>main(){inti,j,m=2;

for(i=1;i<3;i++)

{for(j=3;j>0;j–)

{if(i+j>3)break;

m=ij;}}

printf(“m=%d”,m);}

A:m=6

B:m=5

C:m=2

D:m=4

答案:C以下程序运行后的输出结果是#include<stdio.h>main(){inta=1,b=2;

for(;a<8;a++){b+=a;a+=2;}

printf(“%d,%d”,a,b);}

A:9,18

B:10,14

C:7,11

D:8,11

答案:B以下程序运行后的输出结果是#include<stdio.h>main(){

intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf(“%d”,c);}

A:5

B:7

C:3

D:9

答案:C以下程序的运行结果是

#include<stdio.h>

main()

{intx=8;

for(;x>0;x–)

{if(x%3)

{printf(“%d,”,x–);

continue;}

printf(“%d,”,–x);

}

}

A:8,7,5,2

B:7,4,2

C:9,7,6,4

D:8,5,4,2

答案:D下述程序的输出结果#include<stdio.h>main(){

inty=10;

while(y–);

printf(“y=%d”,y);}

A:y=0

B:y=随机值

C:y=-1

D:y=1

答案:C下面的程序的结果是:#include<stdio.h>main(){intx=3;do

{printf(“%d”,x-=2);}while(!(–x));}

A:输出的是1

B:输出的是1和-2

C:输出的是3和0

D:是死循环

答案:B下述for语句inti,x;for(i=0,x=1;i<=9&&x!=876;i++)

scanf(%d”,&x);

A:一次也不循环

B:最多循环9次

C:最多循环10次

D:无限循环

答案:C有以下程序#include<stdio.h>main(){ints;scanf(“%d”,&s);while(s>0){switch(s){case1:printf(“%d”,s+5);

case2:printf(“%d”,s+4);break;

case3:printf(“%d”,s+3);

default:printf(“%d”,s+1);break;}scanf(“%d”,&s);}}运行时,若输入123450,则输出结果是

A:66666

B:66656

C:6566456

D:666656

答案:C第六章测试若有以下说明:

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

charc=‘a’,d,g;则数值为4的表达式是

A:a[g-c]

B:a[4]

C:a[‘d’-‘c’]

D:a[‘d’-c]

答案:D以下程序运行后的输出结果是#include<stdio.h>main(){inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=1;i<3;i++)s=s+a[b[i]];printf(“%d”,s);}

A:5

B:10

C:6

D:11

答案:A#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

for(i=1;i<3;i++)

for(j=1;j<=1;j++)t+=b[i][b[j][i]];

printf(“%d”,t);}程序运行后的输出结果是

A:4

B:1

C:9

D:3

答案:A若有以下定义和语句chars1[10]=“abcd!”,s2[10]=“123”;printf(“%d,%d”,strlen(s1),strlen(s2));则输出结果是

A:58

B:55

C:107

D:105

答案:B#include

<stdio.h>main(){

chars[]={“012xy”};

inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>‘a’&&s[i]<=‘z’)n++;printf(“%d”,n);}程序运行后的输出结果是

A:5

B:2

C:3

D:0

答案:B以下程序的运行结果是

#include<stdio.h>

main()

{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++)c[s[i]]++;

for(i=1;i<5;i++)printf(“%d”,c[i]);

printf(“”);

}

A:2344

B:4332

C:1234

D:1123

答案:B有以下程序#include<stdio.h>main(){chars[]=“012xy8s34f4w2”;

inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=‘0’&&s[i]<=‘9’)n++;printf(“%d”,n);}程序运行后的输出结果是

A:7

B:8

C:3

D:0

答案:C#include<stdio.h>main(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};

intb[3]={0},i;

for(i=1;i<3;i++)b[i]=a[i][2]+a[2][i];

for(i=1;i<3;i++)printf(“%d”,b[i]);

printf(“”);}程序运行后的输出结果是

A:18

B:1428

C:14

D:1418

答案:D以下程序用以删除字符串中所有空格,横线处需要填哪条语句#include<stdio.h>main(){char[100]={“Ourteacherteachclanguage!”};inti,j;for(i=j=0;s[i]!=’’;i++)

if(s[i]!=‘’){s[j]=s[i];j++;}s[j]=______;printf(“%s”,s);}

A:0

B:‘0’

C:””

D:48

答案:A第七章测试#include<stdio.h>intfun(){staticintx=1;

x*=2;returnx;}main(){inti,s=1;for(i=1;i<=2;i++)

s=fun();printf(“%d”,s);}程序运行后的输出结果是

A:0

B:8

C:1

D:4

答案:D#include

<stdio.h>intf(intt[],intn);main(){inta[4]={1,2,3,4},s;

s=f(a,4);printf(“%d”,s);}intf(intt[],intn){if(n>0)

returnt[n-1]+f(t,n-1);

elsereturn0;}程序运行后的输出结果是

A:14

B:10

C:4

D:6

答案:B#include<stdio.h>intf(intn);main(){inta=3,s;

s=f(a);s=s+f(a);printf(“%d”,s);}intf(intn){staticinta=1;n+=a++;returnn;}程序运行后的输出结果是

A:7

B:9

C:8

D:10

答案:B#include

<stdio.h>voidfun(intp){intd=2;p=d++;printf(“%d”,p);}main(){inta=1;fun(a);printf(“%d”,a);}程序运行后的输出结果是

A:22

B:32

C:21

D:12

答案:C#include<stdio.h>intfun(intx,inty){if(x==y)

return(x);else

return((x+y)/2);}main(){inta=4,b=5,c=6;printf(“%d”,fun(2*a,fun(b,c)));}程序运行后的输出结果是

A:8

B:12

C:3

D:6

答案:D#include<stdio.h>intfun(inta,intb){if(b==0)returna;elsereturn(fun(–a,–b));}main(){printf(“%d”,fun(4,2));}程序的运行结果是

A:2

B:3

C:1

D:4

答案:A#include<stdio.h>voidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}main(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i++)printf(“%d”,k[i]);printf(““);}程序的运行结果是

A:1098765

B:321678

C:345678

D:876543

答案:B有以下程序

void

swap1(int

c[]){int

t;

t=c[0];c[0]=c[1];c[1]=t;

}void

swap2(int

c0,int

c1){int

t;

t=c0;c0=c1;c1=t;

}main(){int

a[2]={3,5},b[2]={3,5};

swap1(a);

swap2(b[0],b[1]);

printf(“%d%d%d%d”,a[0],a[1],b[0],b[1]);}执行后输出的结果是:

A:5

3

5

3

B:3

5

3

5

C:3

5

5

3

D:5

3

3

5

答案:D有以下程序#include<stdio.h>intfun(){staticintx=1;x=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)

s=fun();printf(“%d”,s);}程序运行后的输出结果是

A:10

B:64

C:0

D:30

答案:Bintfun(intn){if(n==1)return1;

elsereturn(n+fun(n-1));}main(){intx;

scanf(“%d”,&x);

x=fun(x);

printf(“%d”,x);}执行程序时,给变量x输入10,程序输出结果是:

A:65

B:55

C:45

D:54

答案:B第八章测试下列语句组中,正确的是

A:char

s;s=”Olympic“;

B:char

s[7];s={”Olympic”};

C:char

s[7];s=“Olympic”;

D:char

s;s={“Olympic”};

答案:A

voidfun(charc,intd)

{c=c+1;d=d+1;

printf(“%c,%c,”,c,d);

}main(){charb=‘a’,a=‘A’;

fun(&b,a);

printf(“%c,%c”,b,a);

}程序运行后的输出结果是

A:b,B,B,A

B:a,B,a,B

C:a,B,B,a

D:b,B,b,A

答案:D设有定义double

a[10],s=a;以下能够代表数组元索a[3]的是

A:s+3

B:s[3]

C:(s+3)

D:(*s)[3]

答案:C#include<stdio.h>#defineN8voidfun(intx,inti){

x=*x+i;}main(){inta[N]={1,2,3,4,5,6,7,8},i;

fun(a,2);

for(i=0;i<N/2;i++){printf(“%d”,a[i]);}

printf(“”);}程序运行后的输山结果是

A:1313

B:3234

C:1234

D:2234

答案:B#include<stdio.h>main(){intm=1,n=2,p=&m,q=&n,r;

r=p;p=q;q=r;

printf(“%d,%d,%d,%d”,m,n,p,*q);}程序运行后的输出结果是

A:1,2,2,1

B:2,1,1,2

C:2,1,2,1

D:1,2,1,2

答案:A#include<stdio.h>#include<string.h>main(){char

str[][20]={“OneWorld”,”OneDream!”};

charp=str[1];

printf(“%d,”,strlen(p));

printf(“%s”,p);

}程序运行后的输出结果是

A:10,OneDream!

B:9,OneWorld

C:9,OneDream!

D:10,One*Wor

答案:A下列函数的功能是fun(char

a,char

b){while((b=a)!=’‘){a++;b++;}}

A:使指针b指向a所指字符串

B:将a所指字符串赋给b所指空间

C:将a所指字符串和b所指字符串进行比较

D:检查a和b所指字符串中是否有’’

答案:B#include<stdio.h>main(){char

s=“ABC”;do{printf(“%d”,s%10);s++;}

while(*s);

}字母A的ASCII码值为65.程序的输出结果是

A:ABC

B:656667

C:567

D:5670

答案:C#include<stdio.h>voidfun(char

s){while(s)

{if(s%2==0)printf(“%c”,s);s++;}}main(){char

a[]={“abcd”};

fun(a);printf(““);}字母a的ASCⅡ码值为97,程序的输出结果是

A:ab

B:bd

C:abcd

D:cd

答案:B#include<stdio.h>void

f(intp,intq);main(){intm=1,n=2,r=&m;

f(r,&n);printf(“%d,%d”,m,n);

}void

f(intp,intq){p=p+1;q=*q+1;}程序运行后输出的结果是

A:2,3

B:1,4

C:1,2

D:1,3

答案:D#include<stdio.h>main(){chara[]={“abcd”,“ef”,“gh”,“ijk”};

inti;

for(i=0;i<4;i++)

printf(“%c”,a[i]);

}程序运行后输出的结果是

A:abcdefghijk

B:dfhk

C:aegi

D:abcd

答案:C#include<stdio.h>intb=2;intfun(intk){

b=k+b;return(b);}main(){inta[10]={1,2,3,4,5,6,7,8},i;

for(i=2;i<4;i++){b=fun(a)+b;printf(“%3d”,b);}

}程序运行后输出的结果是

A:1016

B:8

10

C:10

12

D:6

14

答案:D以下程序的输出结果是________

#include<stdio.h>

voidswap(inta,intb)

{intt;

{

t=a;a=b;b=t;

}

}

main()

{inti=3,j=5,p=&i,q=&j;

swap(p,q);printf(“%d%d”,p,*q);

}

A:35

B:53

C:3553

答案:A以下程序的输出结果是__________

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},p;

p=a;p++;

printf(“%d”,p);

}

A:5

B:6

C:4

D:2

答案:C有以下程序voidf(inty,intx){y=y+x;x=x+y;}main(){intx=2,y=4;

f(y,&x);

printf(“%d%d”,x,y);}

执行后输出的结果是

A:42

B:24

C:84

D:48

答案:C以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。voidsstrcpy(chars,chart){

while(s++=______);}main(){charstr1[100],str2[]=”abcdefgh”;

sstrcpy(str1,str2);

printf(“%s”,str1);}

A:t

B:s

C:t++

D:*s++

答案:C第九章测试#include<stdio.h>#include<string.h>structA{inta;

charb[10];

doublec;};voidf(structAt);main(){structAa={1001,“ZhangDa”,1098.0};

f(a);

printf(“%d,%s,%6.1f”,a.a,a.b,a.c);}voidf(structAt){t.a=1002;

strcpy(t.b,“ChangRong”);

t.c=1202.0;

}结果是

A:1001,zhangDa,1098.0

B:1002,changRong,1202.0

C:1002,ZhangDa,1202.0

D:1001,changRong,1098.0

答案:A#include<stdio.h>structord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;

printf(“%d,”,++p->x);

printf(“%d”,++p->y);

}程序的运行结果是

A:3,4

B:2,3

C:4,1

D:1,2

答案:B#include<stdio.h>structst{intx,y;}data[2]={l,10,2,20};main(){structst*p=data;

printf(“%d,”,p->y);

printf(“%d”,(++p)->x);}

程序的运行结果是

A:20,2

B:10,1

C:20,1

D:10,2

答案:D#include<stdio.h>main(){structSTU

{charname[9];

charsex;

double

score[2];

};

structSTUa={“Zhao”,‘m’,85.0,90.0),b={“Qian”,‘f’,95.0,92.0);

b=a;

printf(“%s,%c,%2.0f,%2.0f”,

,b.sex,b.score[0],b.score[1]);

}程序的运行结果是

A:Qian,m,85,90

B:Zhao,m,85,90

C:Zhao,f,95,92

D:Qian,f,95,92

答案:B有以下程序structS{inta,b;}data[2]={10,100,20,200};main(){structSp=data[1];printf(“%d”,++(p.a));}程序运行后的输出结果是

A:11

B:10

C:

温馨提示

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

评论

0/150

提交评论