南昌工程学院c语言考试试题.docx

上传人:b****4 文档编号:4029043 上传时间:2022-11-27 格式:DOCX 页数:123 大小:53.13KB
下载 相关 举报
南昌工程学院c语言考试试题.docx_第1页
第1页 / 共123页
南昌工程学院c语言考试试题.docx_第2页
第2页 / 共123页
南昌工程学院c语言考试试题.docx_第3页
第3页 / 共123页
南昌工程学院c语言考试试题.docx_第4页
第4页 / 共123页
南昌工程学院c语言考试试题.docx_第5页
第5页 / 共123页
点击查看更多>>
下载资源
资源描述

南昌工程学院c语言考试试题.docx

《南昌工程学院c语言考试试题.docx》由会员分享,可在线阅读,更多相关《南昌工程学院c语言考试试题.docx(123页珍藏版)》请在冰豆网上搜索。

南昌工程学院c语言考试试题.docx

南昌工程学院c语言考试试题

1以下四个程序中,完全正确的是(  )。

答案:

#include

main()

{/*programming*/

printf("programming!

\n");}

2:

若以下说明,则数值为4的表达式是()。

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

charc='a',d,g;

答案:

a['d'-c]

3.在一个C程序中()。

答案:

main函数可以在任何地方出现

4.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。

答案:

int

5.当调用函数fopen发生错误时,函数的返回值是()。

答案:

0或NULL

6.下面程序的运行结果是()。

#defineADD(x)x+x

main()

{

intm=1,n=2,k=3;

intsum=ADD(m+n)*k;

printf("%d",sum);

}

答案:

10

7.以下程序的运行结果是()。

main()

{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);}

答案:

21

8.下列合法的标识符是

答案:

_arry

9.已定义以下函数intfun(int*p){return*p;}fun函数返回值是()

答案:

一个整数

10.对以下程序段以叙述中正确的是()

typedefstructNODE

{

intnum;

structNODE*next;

}OLD;

答案:

OLD是一个结构体类型

11.若已定义x和y为int类型,则表达式x=1,y=x+3/2的值是______。

答案:

2

12.有如下嵌套的if语句

if(a

if(a

elsek=c;

else

if(b

elsek=c;

以下选项中与上述if语句等价的语句是()。

答案:

k=(a

((a

a:

c):

((b

b:

c)

13以下是if语句的基本形式:

if(表达式)语句

其中"表达式"()。

答案:

可以是任意合法的表达式

14.若运行以下程序段时,从键盘输入Adescriptor表示回车),则下面程序段的运行结果是()

charc;

intv0=0,v1=0,v2=0;

do{switch(c=getchar())

{case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'o':

case'O':

case'u':

case'U':

v1+=1;

default:

v2+=1;}

v0+=1;

}while(c!

='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

答案:

v0=12,v1=4,v2=12

15.以下程序的运行结果是(  )。

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]);}

答案:

369

16.以下关于逻辑运算符两侧运算对象的叙述中正确的是()。

答案:

可是任意合法的表达式

17.以下程序的运行结果是( )。

voidfun1(char*p)

{char*q;

q=p;

while(*q!

='\0')

{(*q)++;q++;}

}

main(){

chara[]={"Program"},*p;

p=&a[3];

fun1(p);

printf("%s\n",a);}

答案:

Prohsbn

18.以下程序段运行后的输出结果是()

intk=0,i,m;

for(i=5;i<=15;i+=5)

{m=i;

while(m%5==0)

{k++;m=m/5;}

}

printf("%d\n",k);

答案:

3

19.有以下程序,程序的运行结果是()。

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++;}

printf("a=%d,b=%d\n",a,b);}

答案:

a=2,b=1

20.有以下程序段

intk=1;

while(k=0)k++;

while循环执行的次数是()。

答案:

一次也不执行

21.设变量已正确定义,则以下能正确计算f=n!

的程序段是()。

答案:

f=1;

for(i=n;i>=2;i--)f*=i;

22.以下叙述中正确的是()

答案:

只要是用户定义的标识符,都有一个有效的作用域

23.以下程序段:

floata,b;

scanf("%f",&a);

if(a<0.0)b=0.0;

elseif((a<0.5)&&(a!

=2.0))b=1.0/(a+2.0);

elseif(a<10.0)b=1.0/a;

elseb=10.0;

printf("%f\n",b);

若运行时输入2.0,则输出结果是()

答案:

0.500000

24.以下程序的结果是()。

main(){intn;

for(n=1;;)

{if(++n%2==0)continue;

if(++n%3==0)break;}

printf("n=%d",n);}

答案:

n=6

25.以下程序的运行结果是(  )。

{

chararr[2][4];

strcpy(arr[0],"you");

strcpy(arr[1],"me");

arr[0][3]='&';

printf("%s\n",arr);

}

答案:

you&me

26.有以下程的运行结果是()

structty

{intx;

inty;

intz;}s[3]={1,2,3,4,5,6,7,8,9};

main()

{printf("%d,",++s[0].y);

printf("%d,",s[1].y++);

printf("%d,",s[2].z++);}

答案:

3,5,9

在C语言中,每个语句和数据定义是用(  )结束。

分号

 

以下能正确定义一维数组的选项是()

inta['A'];

 

以下关于C语言的叙述中正确的是(  )。

C语言中的注释不可以夹在变量名或关键字的中间

 

以下叙述中正确的是()

调用函数时,函数名必须与被调用的函数名完全一致

 

若有以下程序段

FILE*fp;

inti,a[6]={1,2,3,4,5,6},k;

fp=fopen("data.dat","w+b");

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

{fseek(fp,0L,0);

fwrite(&a[5-i],sizeof(int),1,fp);}

rewind(fp);

fread(&k,sizeof(int),1,fp);

fclose(fp);

printf("%d",k);

则程序段的输出结果是()

1

 

有以下程序

#include

#defineSUB(X,Y)(X+1)*Y

main()

{

inta=3,b=4;

printf("%d\n",SUB(a++,b++));

}

程序运行后的输出结果是()。

16

 

以下程序段的运行结果是()

voidswap(intb[])

{intt;

t=b[0];b[0]=b[1];b[1]=t;}

main()

{inta[2]={7,8};

swap(a);

printf("%d%d",a[0],a[1]);}

87

 

按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(  )。

连接符

 

以下程序的输出结果是()。

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(5,2,a);

printf("%d",a);}

31

 

有如下说明

structSTD

{intn;

charc;

doublex;};

则以下选项中,能正确定义结构体数组并赋初值的语句是()

structSTDtt[2]={{1,'A',62.0},{2,'B',75.0}};

 

以下选项中,当x为大于1的奇数时,值为0的表达式()。

x%2==0

 

有以下程序段:

()

inta=1,b=2,c=3;

if(a>b)

if(b

elseprintf("%d",++b);

printf("%d\n",a++);

1

 

以下程序段的输出结果()

intx=8,y=9,z;

if(x++>8)

z=++x;

else

z=++x;

printf("%d",z);

10

 

若运行以下程序段时,从键盘输入Adescriptor表示回车),则下面程序段的运行结果是()

charc;

intv0=0,v1=0,v2=0;

do{switch(c=getchar())

{case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'o':

case'O':

case'u':

case'U':

v1+=1;

default:

v2+=1;}

v0+=1;

}while(c!

='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

v0=12,v1=4,v2=12

 

以下程序的运行结果是(  )。

main()

{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

for(j=0;j<3;j++)

{a[i][j]=i+j;

if(i=j)

sum=sum+a[i][j];}

printf("sum=%d",sum);}

sum=26

 

若a是数值类型,则逻辑表达式(a==1)||(a!

=1)的值是()。

1有以下程序段:

intx[]={10,20,30};

int*px=x;

printf("%d,",++*px);printf("%d,",*px);

px=x;

printf("%d,",(*px)++);printf("%d,",*px);

px=x;

printf("%d,",*px++);printf("%d,",*px);

px=x;

printf("%d,",*++px);printf("%d,",*px);

程序运行后的输出结果是()

11,11,11,12,12,20,20,20

 

下面程序段的运行结果是()

inti,j,a=0;

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

{for(j=0;j<4;j++)

{if(j%2)break;

a++;

}

a++;

}

printf("%d\n",a);

4

 

以下程序结果是()。

main()

{intx=1,a=0,b=0;

switch(x)

{case0:

b++;

case1:

a++;

case2:

a++;b++;}

printf("%d,%d",a,b);}

2,1

 

设有程序段

intk=20;

while(k=0)k=k+1;

则下面描述中正确的是()

循环体语句一次也不执行

 

以下不是无限循环的语句为()

for(y=0,x=1;x>++y;x=i++)i=x;

 

以下选项中叙述错误的是()

C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

 

若有定义语句chars[10]="1234567\0\0";,则strlen(s)的值是()。

7

 

有以下定义,结构成员的值是"yeming"的元素是()

structstudent

{intnum;

charname[20];

charsex;

charaddr[20];}st1[3]={{1001,"liming",'M',"beijing"},

{1002,"huming",'N',"hebei"},

{1002,"yeming",'M',"jiangxi"}};

st1[2].name

 

以下关于结构化程序设计的叙述中正确的是(  )。

在C语言中,程序的模块化是利用函数实现的

 

以下能正确定义一维数组的选项是()

inta['A'];

 

在一个C程序中()。

main函数可以在任何地方出现

 

以下关于return语句的叙述中正确的是()

一个自定义函数中可以根据不同情况设置多条return语句

 

有以下程序段

FILE*fp;charstr[10];

fp=fopen("myfile.dat","w");

fputs("abc",fp);

fclose(fp);

fp=fopen("myfile.dat","a+");

fprintf(fp,"%d",28);

rewind(fp);

fscanf(fp,"%s",str);

puts(str);

fclose(fp);

程序运行后的输出结果是()

abc28

 

若有以下程序

#defineS(x)x*x

#defineT(x)S(x)*S(x)

main()

{

intk=5,j=2;

printf("%d,%d\n",S(k+j),T(k+j));

}

则程序的输出结果是()。

17,37

 

以下程序段输出结果是()。

inti,a[10]={0};

for(i=0;i<10;i++)a[2*i]=2*i;

printf("%d%d%d%d",a[1],a[2],a[3],a[4]);}

0204

 

以下函数值的类型是()。

fun(floatx)

{floaty;

若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。

2.0

 

有以下程序段:

()

inta=1,b=2,c=3;

if(a>b)

if(b

elseprintf("%d",++b);

printf("%d\n",a++);

1

 

以下程序段中,与语句:

k=a>b?

(b>c?

1:

0):

0;功能相同的是()。

if((a>B)&&(b>C))k=1;

else k=0;

 

以下能正确计算10!

的程序段是()。

i=1;s=1;

do{s=s*i;

i++;

}while(i<=10);

 

以下程序的运行结果是( )。

main()

{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

for(j=0;j<=i;j++)s+=a[i][j];

printf("%d\n",s);}

18

 

设intx=1,y=1;表达式(!

x||y--)的值是()。

1

 

以下程序的运行结果是( )。

main()

{inta=25,*p;

p=&a;

printf("%d\n",++*p);}

26

 

以下程序段运行后的输出结果是()

inti,s=1,m=0;

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

{s=s*11%1000;

do{m+=s%10;s=s/10;}while(s);

}

printf("m=%d\n",m);

2

 

以下选项中与

if(a==1)a=b;

elsea++;

语句不同的switch语句是()

switch(a==1)

{case0:

a=b;break;

case1:

a++;

}

 

下面程序段的运行结果是()

inta=1,b=2,c=2,t;

while(a

printf("%d,%d,%d",a,b,c);

1,2,0

 

有以下程序运行后的输出结果是()。

inta=4;

intf(intn)

{intt=0;

staticinta=5;

if(n%2){inta=6;t+=a++;}

else{inta=7;t+=a++;}

returnt+a++;}

main()

{ints=a,i=0;

for(;i<2;i++)s+=f(i);

printf("%d\n",s);}

28

 

若变量已正确定义,以下程序段运行结果是()。

inta=3,b=5,c=7;

if(a>b)a=b;c=a;

if(c!

=a)c=b;

printf("%d,%d,%d\n",a,b,c);

3,5,3

 

若有定义语句chars[10]="1234567\0\0";,则strlen(s)的值是()。

7

 

下列程序输出的结果是()

structabc

{inta,b,c;};

main()

{intt;

structabcs[2]={{4,5,6},{7,8,9}};

t=s[0].a+s[1].b;

printf("%d\n",t);}

12

 

以下叙述中正确的是(  )。

我们所写的每条C语句,经过编译最终将转换成二进制的机器指令

 

以下能正确定义一维数组的选项是()。

intnum[5*2];

 

以下叙述中正确的是(  )。

以上三种说法都不完整。

 

以下叙述中错误的是()

用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

 

有以下程序段

FILE*fp;charstr[10];

fp=fopen("myfile.dat","w");

fputs("abc",fp);

fclose(fp);

fp=fopen("myfile.dat","a+");

fprintf(fp,"%d",28);

rewind(fp);

fscanf(fp,"%s",str);

puts(str);

fclose(fp);

程序运行后的输出结果是()

abc28

 

在下列选项中不会引起二义性的宏定义是()。

#definef(a)((a)*(a))

 

以下程序的运行结果是(  )。

voidswap1(intc[])

{intt;

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

voidswap2(intc0,intc1)

{intt;

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

}

main()

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

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

printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}

5335

 

以下不正确的标识符是()

1TYP

 

以下函数值的类型是()。

fun(floatx)

{floaty;

y=3*x-4;

returny;}

int

 

设有以下结构体描述不正确的是()

structstu

{intx;

floaty;

}aa;

aa是用户定义的结构体类型名

 

有以下程序

main()

{

inta=1,b=0;

printf("%d,",b=a+b);

printf("%d\n",a=2*b);

}

程序运行后的输出结果是(  )。

1,2

 

以下程序段的输出结果是()

intx=1,y=3,z=2;

if(x>=y)

z=-1;

else

if(y<0)z=0;

printf("%d\n",z);

2

 

有以下程序段:

inta=0,b=0,c=0,d=0;

if(a=1)b=1;

c=2;

elsed=3;

printf("%d,%d,%d,%d\n",a,b,c,d);

程序输出()

编译有错

 

若运行以下程序段时,从键盘输入Adescriptor表示回车),则下面程序段的运行结果是()

charc;

intv0=0,v1=0,v2=0;

do{switch(c=getchar())

{case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'o':

case'O':

case'u':

case'U':

v1+=1;

default:

v2+=1;}

v0+=1;

}while(c!

='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

v0=12,v1=4,v2=12

 

以下程序的运行结果是(  )。

main()

{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

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

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

printf("%d\n",t);}

4

 

sizeof(double)是(  )。

一个整型表达式

 

有以下程序段运行后的输出结果是(  )。

main()

{inta[10]={1,2,3,4,5,6,7,8,9},*p=a;

p++;

p++;

printf("%d\n",(*++p,*p++));}

4

 

以下程序段运行后的输出结果是()

intn=0,i,j,k;

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

for(k=1;k<=2;k++)

for(j=1;j<=2;j++)

n++;

printf("n=%d\n",n);

n=6

 

有以下程序,程序的运行结果是()。

main(){intx=1,y=0,a=0,b=0;

switch(x)

{case1:

swit

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1