重庆理工大学《C语言程序设计》比赛预赛试题及答案-(A3版)

重庆理工大学

C语言程序设计

预赛

(考试时间90分钟,满分100分)

一、单选题(共60小题,每题1分,共60分)

1. 执行下列程序中的输出语句后,x的值是______。(知识点3.10)

main()

{int x ;

printf(“%d\n”,(x=5*6,x*2,x+20));}

A)30 B)60 C)50 D)80

2. 下列程序的输出结果是_______。(知识点

3.8)

main()

{int x=1,y=0,z;

z=(x<=0)&&(y- ->=0);

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

A)0 -1 -1 B)0 -1 0 C)0 1 0 D)0 1 -1

3. 在C语言中,下列选项属于合法的长整型常数的是_______。(知识点3.3)

A)0L B)1234567 C)0.0234567 D)3.14159e3

4. 下列选项中属于不正确的赋值语句的是_____。(知识点3.6)

A)t++; B)n1=(n2=(n3=0)); C)k=i= =j; D)a=b,c=1;

5. 若有定义:int a,b;char x,y;并有以下输入数据: 14 22 XxYy (回车)则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是________。(知识点4.2)

A) scanf(“%d %d”,&a,&b);

x=getchar();y=getchar();

B) scanf(“%d%d %c %c”, &a, &b,&x,&x,&y,&y);

C) scanf(“%d %d %c%c%c %c”, &a,&b,&x,&x,&y,&y);

D) scanf(“%d%d %c %c”, &a, &b,&x,&y);

6. 下列转义字符不正确的是_______。(知识点3. 5)

A)’\\’ B)’\’ C)’\053’ D)’\0’

7. 下列选项可作为C语言赋值语句的是_______。(知识点4.2)

A)x=3,y=5 B)a=b=6 C)i- -; D)y=int(x);

8. 当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是_______。(知识点5.2)

A)c=b=a; B)(a=c)‖(b=c); C)(a=c)&&(b=c); D)a=c=b;

9. 有以下程序:

main()

{ unsigned int a ;

int b=-1;

a=b;

printf(“%u”,a);}

该程序运行后的输出结果是_______。(知识点4.5)

A)-1 B)65535 C)32767 D)-32768

10. 若x、b、m、n均为int型变量,执行下面语句后b的值为_______。(知识

点3.10)

m=20;n=6;

x=(- -m= =n++)?- -m:++n;

b=m++;

A)11 B)6 C)19 D)18

11. 有以下程序:

main()

{ int a=111,b=222;

printf(“%d\n”,a,b);

}

该程序运行后的输出结果是_______。(知识点4.5)

A)错误信息 B)111 C)222 D)111,222

12. 以下程序的输出结果是_______。(知识点4.5)

main()

{ int a=2,c=5;

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

A) a=%2,b=%5 B) a=2,b=5 C) a=%%%d,b=%%%d D) a=%%d,b=%%d

13. 对于浮点型变量f,能实现对f中的值在小数点后第三位进行四舍五入的表达式是_______。(知识点3.8)

A)f=(f*100+0.5)/100.0 B)f=(f*100+0.5)/100

C)f=(int)(f*100+0.5)/100.0 D)f=(f/100+0.5)*100

14. 设 a=5, b=6, c=7, d=8, m=2, n=2, 执行(m=a>b)&&(n=c>d) 后m,n的值为______。(知识点5.2)A) 2,2 B) 2,0 C) 0,2 D) 0,0

15. 语句printf(“%d\n”,strlen(“asd\n\x12\1\\”));的输出结果是______。(知识点7.3)

A) 9 B) 11 C) 7 D) 8

16. 有以下程序:

main( )

{

int y=1234;

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

printf(“y=%+06d\n”,y);

}

该程序的运行结果是______。(知识点4.5)

A) y= 1234y=001234 B) y= 1234y=+01234

C) y=1234y=+01234 D) y= 1234y=1234

17. 语句:printf(“%d”, !9);的输出结果是______。(知识点5.2)

A) 0 B) 1 C) 有语法错误,不能执行 D) -9

18. 已有定义语句:int x=6,y=4,z=5;执行以下语句后,能正确表示x、y、z值的选项是______。(知识点5.3)

if(x

A) x=4,y=5,z=6 B) x=4,y=6,z=6

C) x=4,y=5,z=5 D) x=5,y=6,z=4

19. 下列选项中属于正确的switch语句的是______。(知识点5.4)

A)switch(1.0) B)swicth(1)

{ case 1.0 :printf(“A\n”); { case 1 :printf(“A\n”); case 2.0 :printf(“B\n”); } case 2 :printf(“B\n”);} C)switch((int)(1.0+2.5)) D)switch(“a”);

{ case 1 :printf(“A\n”); { case “a”:printf(“A\n”); case 1+2 :printf(“B\n”);} case “b”:printf(“B\n”);} 20. 若k为int型变量,以下语句段执行后的输出结果是______。(知识点5.3)k=-3;

if(k<=0) printf(“####”)

else printf(“****”);

A) #### B) **** C) ####**** D) 有语法错误,不能执行

21. 当a=2,b=3,c=4,d=5时,执行下面一段程序后x的值为_____。(知识点5.3)

if(a>b)

if(c

else

if(a

if(b>d)x=2 ;

else x=3 ;

else x=4 ;

else x=5 ;

A)2 B)3 C)4 D)5

22. 下列程序的运行结果是________。(知识点6.3)main()

{ int y=10;

do { y- - ;} while(- -y);

printf(“%d\n”,y- -);}

A)-1 B)1 C)8 D)0

23. 下列程序的运行结果是________。(知识点6.5)

# include

main()

{

int i ;

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

{ if(i %2)printf(“*”);

else continue ;

printf(“#”);

}

printf(“$\n”);

}

A)*#*#$ B)#*#*#*$ C)*#*#*#$ D)***#$ 24. 若x是int型变量,且有下面的程序片段:(知识点6.5)

for(x=5;x<8;x++)

printf((x%2)?(“**%d”):(“##%d\n”),x);

该程序片段的输出结果是 _______。

A)**5##6 B)##5 C)##5**6##7 D)**5##6**7 **7 **6##7

25. 有以下程序:

main()

{int a=1,b=0;

switch(a)

{ case 1:switch(b)

{ case 0:printf(“****”);break ;

case 1:printf(“####”);break ; }

case 2: printf(“$$$$”);break ; }

该程序的输出结果是________。(知识点5.4)

A)**** B)****$$$$ C)****####$$$$ D) ####$$$$ 26. 下列程序段的输出结果是_______。(知识点6.4)

int x=3;

do {printf(“%3d”,x-=2);}

while(!(--x));

A)1 B)3 0 C)1 -2 D)死循环

27. 有以下程序,其中x、y为整型变量;

for(x=0,y=0;(x<=1)&&(y= 1);x++,y--);

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

该程序的输出结果是_____。(知识点6.5)

A)x=2,y=0 B) x=1,y=0 C) x=1,y=1 D) x=0,y=0

28. 有以下程序段:int n=0,p;

do { scanf(“%d”,&p);n++;} while(p!=12345&&n<3);

此处do-while循环的结束条件是_____。(知识点6.4)

A)p的值不等于12345并且n的值大于3

B)p的值等于12345并且n的值大于等于3

C)p的值不等于12345或者n的值小于3

D)p的值等于12345或n的值大于等于3

29. 在下述程序中,if (i>j) 语句共执行的次数是_____。(知识点6.5)main()

{ int i=0,j=10,k=2,s=0;

for(;;)

{ i+= k ;

if(i>j)

{ printf(“%d”,s);

break ;

}

s+=i ;

}

}

A)4 B)7 C)5 D)6

30. 以下程序的功能是:按顺序读入10名学生和4门课程的成绩,计算出每位学生的平均分进行输出,但运行结果不正确。

main()

{ int n,k;float score,ave;

ave=0.0;

for(n=1;n<=10;n++)

{ for(k=1;k<=4;k++)

{ scanf(“%f”,&score);

ave+=score/4 ;}

printf(“NO%d:%f\n”,n,ave);}

}

造成程序计算结果错误的语句行是_____。(知识点6.6)

A)ave=0.0; B)for(n=1;n<=10;n++)

C)ave+=score/4 ; D)printf(“NO%d:%f\n”,n,ave);

31. 若有以下定义:char s[10]={‘a’,’b’,’c’,’0’,’\0’,’2’,’\x32’,’\0’};执行语句printf(“%d”,strlen(s));的结果是_____。(知识点7.3)

A)3 B)4 C)8 D)10

32. 设有数组定义:char array[ ]=“abcdef”;则数组array所占的空间为_____。(知识点7.3)

A)4个字节 B)5个字节 C)6个字节 D)7个字节

33. 有以下程序:

main()

{ char str[ ][10]={“China”,“Beijing”},*p=str;

printf(“%s\n”,p+10);} 该程序运行后的输出结果是_____。(知识点10.4)

A)China B)Beijing C)ng D)ing

34. 阅读下面程序,该程序段的功能是_____。(知识点7.1)

#include

main()

{ int c[ ]={23,1,56,234,7,0,34},i,j,t;

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

{ t=c[i];j=i-1;

while(j>=0&&t>c[j]) { c[j+1]=c[j];j- - ;}

c[j+1]=t;}

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

putchar(’\n’);

}

A)对数组元素的升序排列 B)对数组元素的降序排列C)对数组元素的倒序排列 D)对数组元素的随机排列35. 下列程序的输出结果是_____。(知识点7.2)

main()

{ int n[3][3],i,j;

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

for(j=0;j<3;j++)n[i][j]=i+j;

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

for(j=0;j<2;j++)n[i+1][j+1]+= n[i][j];

printf(“%d \n”,n[i][j]);

}

A)14 B)0 C)6 D)值不确定

36. 下列函数调用语句中含有______个参数。(知识点8.3)

func((f1,f2),(f2,f3,f4),f5)

A)3 B)4 C)5 D)6

37. 下列程序的运行结果是_______。(知识点7.3)

#include

main()

{ char *p1,*p2,ch[20]=“ABCDEFabcdef”;

p1=“1234”;p2=“abcd”;

strcpy(ch+1,p2+1);strcpy(ch+3,p1+3);

pintf(“%s\n”,ch);}

A)Abc4EFabcde B)Abc4EF C)AbcdEF D)Abc4 38. 下列程序的运行结果是_______。(知识点8.6)

# include

int f(int a)

{ switch (a)

{ case 0:return 0;

case 1:case 2:return 1;

}

return(f(a-2)+f(a-3));

} main()

{ int b;

b=f(10);

printf(“b=%d\n”,b);

}

A) 12 B)10 C)9 D)8

39. 有以下程序:

fun(int n)

{ if(n= =1|| n= =2)return 2;

return s=n-fun(n-2);}

main()

{printf(“%d\n”,fun(7));}

该程序运行后的输出结果是_____。(知识点8.6)

A) 1 B)2 C)3 D)4

40. 下列程序中函数sort的功能是对a数组中的数据进行由大到小的排序:void sort(int a[ ],int n)

{ int i,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]

}

main()

{ int aa[10]={1,2,3,4,5,6,7,8,9,10 },i;

sort(&aa[3],5);

for(i=0;i<10;i++)printf(“%d,”,aa[i]);

printf(“\n”);

}

该程序运行后的输出结果是_____。(知识点8.4)

A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3,41. 下列程序的运行结果是_____。(知识点8.3)

main()

{ int a=3,y;

y=fn(a,a++);

printf(“%d”,y);}

int fn(x,c)

{ int b;

if(x

else if(x= =c)b=0;

else b=-1 ;

return(b);

}

A)3 B)-1 C)1 D)0

42. 下列程序的运行结果是_____。(知识点7.3)

main(){ char arr[2][4];

strcpy(arr,“you”);strcpy(arr[1],“me”);

printf(“%s\n”,arr);}

A)you me B)you C)me D)arr 43. 下列程序的输出结果是_____。(知识点8.8)

int f()

{ static int i=0;

int s=1;

s+=i;i++;

return s;}

main()

{ int i , a=0;

for(i=0;i<5;i++)a+=f();

printf(“%d\n”,a);}

A)20 B)24 C)25 D)15

44. 程序中对fun函数有如下说明:

void *fun();

此说明的含义是_____。(知识点10.6)

A)fun函数无返回值

B)fun函数的返回值可以是任意的数据类型

C)fun函数的返回值是无值型的指针类型

D)指针fun指向一个函数,该函数无返回值

45. 设有下列定义:static int x,*p=&x,*q;

scanf(“%d,%d”,p,q);

若输入3,4,则x的值为_____。(知识点8.8)

A)3 B)4 C)0 D)无法确定

46. 设有以下程序:

int fun(char *s)

{ int n=0;

while(*s){ n++;s++ ;}

return n ;}

main()

{char y[ ]=“this_is_an_example。”;

printf(“%d\n”,fun(&y[6]));

}

该程序的输出结果是_____。(知识点:10.4)

A)12 B)13 C)14 D)16 47. 下列程序的功能是_____。(知识点:10.4)

int fun(char *a)

{ char *b=a;

while(*b)b++;

{return b-a ;}

}

A) 比较两个字符串的大小 B)字符串的复制C) 计算字符串的长度 D) 字符串的连接48. 下列程序的输出结果是_______。(知识点10.2)

main()

{

int k=3,m=5,n=7;

int *pk=&k,*pm=&m,*p;

*(p=&n)=*pk*(*pm);

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

}

A)5 B)7 C)15 D)21

49. 下列程序的执行结果是_______。(知识点10.3)

main()

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

printf(“%d”,*--p);}

A)非法 B)a[4]的地址 C)5 D)4

50. 以下函数返回a所指的数组中最小值所在的下标值:

fun(int *a, int n)

{ int i , j=0 , p ;

p=j ;

for(i=j;i

if(a[i]

return(p);}

在下划线处应填入_______。(知识点10.2)

A)i=p B)a[p]=a[i] C)p=j D)p=i

51. 下列程序的运行结果是_______。(知识点10.2)void fun(int *a,int *b)

{ int *k;

k=a;a=b;b=k;}

main()

{ int a=3,b=6,*x=&a,*y=&b;

fun(x,y);

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

}

A)6 3 B)3 6 C)编译出错 D)0 0 52. 有如下程序:

#define f(x)x*x

main()

{ int i ;

i=f(4+4)/(2+2);

printf(“%d\n”,i);}

该程序执行后的输出结果是_______。(知识点9.1)

A)28 B)21 C)16 D)4

53. 下列程序的输出结果是_______。(知识点11.4)struct tt;

{ int n1;char n2;float n3;

union uu{int u1[2];char u2[2];}su;};

main()

{printf(“%d\n”,sizeof(struct tt));}

A)11 B)12 C)7 D)9

54. 下列程序的输出结果是_______。(知识点11.6)

struct LH

{ int n;struct LH *m;}p[4];

main()

{ int i;

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

{p[i].n=i;p[i].m=&p[i+1];}

p[i].m=p;

printf(“%d,%d\n”,(p[1].m)->n,p[3].m->n);

}

A)1,2 B)1,3 C)2,0 D)程序出错

55. 下列程序的输出结果是_______。(知识点11.6)

struct st

{ int x;int *y;}*p;

int dt[4]={10,20,30,40};

struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};main()

{ p=aa;

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

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

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

A)10 20 20 B)50 60 21 C)51 60 21 D)60 70 31 56. 字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的执行结果是_______。(知识点11.8)

#include

main()

{ union

{ int i[4];

long k;

char c[6];

}a,*s=&a ;

s->i[0]=0x39;

s->i[1]=0x38;

printf(“%c\n”,s->c[0]);

}

A)5 B)3 C)6 D)9

57. 下列程序的运行结果是_______。(知识点12.2)

main()

{ unsigned c1=0xff,c2=0x00;

c1=c2|c1>>2;c2=c1^0236;

printf(“%x,%x\n”,c1,c2);}

A)0x3f,0XA1 B)3f,A1 C)ffff,61 D)3f,a1

58. 若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的排列次序正确的是_______。(知识点3.8)

A)sizeof,&= , <<, ^ B)sizeof,<<, ^,&=

C)^,<<,sizeof, &= D)<<,^,&=,sizeof

59. 有以下程序:

#include

void fun(char *fname,char *st)

{ FILE *myf;int i;

myf=fopen(fname,“w”);

for(i=0;i

fclose(myf);

}

main()

{ fun(“test.t”,“new world”);fun(“test.t”,“hello,”);}

执行该程序后,文件test.t中的内容是_______。(知识点13.4)

A)hello, B)new worldhello, C)new world D)hello,rld

60. 有以下程序:

#include

main()

{ FILE *fp;int i=20,j=30,k,n;

fp=fopen(“d1.dat”,“w”);

fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”,j);

fclose(fp);

fp=fopen(“d1.dat”,“r”);

fscanf(fp,“%d%d”,&k,&n);printf(“%d %d\n”,k,n);

fclose(fp);}

该程序运行后的输出结果是_______。(知识点13.4)

A)20 30 B)20 50 C)30 50 D)30 20

二、多选题(共20小题,每题2分,共40分)

1. 下列符号串中,不属于C语言合法标识符的有_____。(知识点3.2)

A)_1_2_3 B)a-b-c C)int D)9cd

2. 当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有_______。(假设k>0)(知识点5.3)

A)k%2 B)k%2= =1 C)(k%2)!=0 D)!k%2= =0

3. 已有定义 int a=-2;和输出语句printf(“%8lx”,a);下列叙述不正确的有_______。(知今识点

4.5)

A)整型变量的输出形式只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的

D)%8lx不是错误的格式符,其中数字81规定了输出字段的宽度

4. 下列选项中,没有构成死循环的程序段有_____。(知识点6.7)

A)int i=100; B)for(;;) while(1)

{ i=i%100+1;

if(i>=100)break;}

C)int k=0; D)int s=36;

do { ++k;} while(k>=0); while(s);--s;

5. t为int类型,进入下面的循环之前,t的值为0:

while(t=1)

{ ……….}

则下列叙述不正确的有________。(知识点6.3)

A)循环控制表达式的值为0 B)循环控制表达式的值为1

C)循环控制表达式不合法 D)循环有可能是个无限循环

6. 下列判断正确的是_______。(知识点10.3)

A)char *a=“china”;等价于 char *a;*a=“china”;

B)char str[6]={“china”};等价于char str[ ]= {“china”};

C)char *s=“china”;等价于char *s;s=“china”;

D)char c[4]=“abc”,d[4]=“abc”;等价于char c[4]=d[4]=“abc”;

7. 若变量已正确定义,以下能正确计算1+2+3+4+5的程序段有_____。(知识点:6.7)

A)i=1;s=1; B)i=0;s=0;

do do

{ s=s+i;i++; { i++; s=s+i;

while(i<5); while(i<5);

C)i=1;s=0; D)i=0;s=0;

do do

{ s=s+i;i++; { s=s+i; i++;

while(i<6); while(i<=5);

8. 下面程序把数组元素中的最小值放入a[0]中,则在if语句中条件表达式可以是______。(知识点10.2)

main()

{ int a[10]={5,2,9,6,7,1,12,8,23,0},*p=a,i;

for(i=0;i<10;i++,p++)

if(______) *a=*p ;

printf(“%d”,*a);

}

A)p>a B)*p

9. 设有如下定义:

char *s[2]={“abcd”,“ABCD”};

则下列说法正确的有_____。(知识点:10.3)

A)s数组元素的值分别是“abcd”和“ABCD”两个字符串的首地址

B)s是指针数组名,它含有两个元素分别指向字符型一维数组

C)s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素

D)s数组的两个元素中分别存放了字符’a’和’A’的地址

10. 以下有关字符串赋值、赋初值的语句错误的有_______。(知识点10.4)A)char sz[2][40];sz[1]=“string1”;

B)char *sz[2];sz[1]=“string2”;C)char sz[][40]=“string3”;

D)char *sz[ ]=“string4”;

11. 若有以下说明:int a[5][9];则下列选项中对数组元素a[i][j]的引用错误的有_______。(0<=i<4,0<=j<9)(知识点10.3)

A)*(&a[0][0]+9*i+j) B)*(a+i)(j) C)*(*(a+i)+j) D)*(a[i]+j)12. 若有定义:char *st=“how are you!”;下面程序段正确的有_____。(知识点:7.3)

A)char a[11],*p;strcpy(p=a+1,&st[4]);

B)char a[11];strcpy(++a,st);

C)char a[11];strcpy(a,st);

D)char a[ ],*p;strcpy(p=&a[1],st+2);

13. 设有以下说明语句:

Struct stu

{ int a ;

float b ;

}stutype ;

则下列叙述正确的有_______。(知识点11.2)

A)struct是结构体类型的关键字

B)struct stu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名

D)a和b都是结构体成员名

14. 若已建立如图所示的单向链表:

则下列选项中能将s所指的结点插入到链表尾部,构成新的单项链表的语句组有_______。(知识点11.7)

A)s->link=a->link->link ;a->link->link=s;

B)a=a->link ; a->link=s ;s->link=NULL;

C)s->link=NULL ;a=(*a).link ;(*a).link =s;

D)a=a->link ; s->link=a->link;a->link=s->link;

15. 设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_______。(知识点10.3)

A)for(i=0;i<6;i++)printf(“%2d”,*(p++));

B)for(i=0;i<6;i++)printf(“%2d”,*(p+i));

C)for(i=0;i<6;i++)printf(“%2d”,*p++);

D)for(i=0;i<6;i++)printf(“%2d”,(*p)++);

16. 下列叙述正确的有_____。(知识点8.5)

A)函数可以嵌套定义,但不能嵌套调用

B)函数可以嵌套调用,也可以嵌套定义

C)函数不可以嵌套定义,但可以递归调用

D)函数可以嵌套调用,但不能嵌套定义

17. 下列叙述不正确的有_____。(知识点8.8)

A)全局变量可以为本文件中其他函数所调用,编译时分配在静态存储区

B)局部变量只在本函数范围内有效,形式参数属于局部变量

C)局部变量如没有被说明为静态的存储类别,则会被分配动态存储空间,存储在动态存储区中

D)局部静态变量在函数调用结束后依然存在,但其他函数不能引用它

18. 若变量已正确定义,要求程序段完成求5!的计算,下列选项中不能完成此操作的程序段有____(知识点6.7)

A)for(i=1,p=1;i<=5;i++)p*=i;

B)for(i=1;i<=5;i++){p=1;p*=i;}

C)i=1;p=1;while(i<=5) p*=i;i++;

D)i=1;p=1;do { p*=i;i++;} while(i<=5);

19. 若有以下说明,则对strcpy库函数的调用不正确的有_______。(知识点10.4)

char *str1=“copy”,str2[10],*str3=“abcde”,*str4,*str5=“hijk”

A)strcpy(str2,str1); B)strcpy(str3,str1);

C)strcpy(str4,str1); D)strcpy(str5 ,str1);

20. 下列选项中可以将变量n清零的表达式有_______。(知识点12..2)

A)n=n&~n B)n=n&0 C)n=n^n D)n=n|n

C语言程序设计预赛题答案一、单选题

二、多选题

C语言程序设计(第3版)-参考答案

C语言程序设计(第3版)-参考答案C语言程序设计(第3版) - 参考答案 C语言是一种广泛应用于软件开发领域的编程语言,它具有高效、 简洁、灵活等特点。《C语言程序设计(第3版)》是一本经典的教材, 本文将提供一些参考答案,帮助读者更好地理解和掌握C语言程序设计。 一、基础知识 1. 什么是C语言? C语言是一种通用的编程语言,由贝尔实验室的Dennis Ritchie开发,在20世纪70年代广泛流行起来。它被设计为一种低级语言,可以直 接操作计算机硬件,并提供了足够的抽象层次来方便高级程序设计。 2. 如何输出“Hello, World!”? 在C语言中,使用printf函数可以输出文本信息。要输出“Hello, World!”,可以使用以下代码: ``` #include int main() { printf("Hello, World!\n"); return 0;

} ``` 3. 如何定义和使用变量? 在C语言中,可以使用关键字`int`、`float`、`char`等定义变量。例如: ``` int age = 20; float weight = 60.5; char grade = 'A'; ``` 定义后的变量可以用于存储不同类型的值,并在程序中进行操作和输出。 二、控制流程 1. 什么是条件语句? 条件语句允许程序通过判断条件来选择性地执行不同的代码块。在C语言中,常用的条件语句是`if`语句。例如: ``` if (score >= 60) { printf("Pass\n");

} else { printf("Fail\n"); } ``` 根据变量`score`的值,判断学生是否及格并输出相应结果。 2. 什么是循环语句? 循环语句可以重复执行一段代码块,以达到多次执行的目的。在C 语言中,常用的循环语句有`for`、`while`和`do while`。例如:``` for (int i = 1; i <= 10; i++) { printf("%d ", i); } int j = 1; while (j <= 10) { printf("%d ", j); j++; } int k = 1; do {

C语言试题(第二学期)A及答案

C语言试题(第二学期)A及答案 重庆理工大学考试试卷 考试科目:C语言试题(第二学期)A卷共4页 班次姓名学号成绩 一.选择填空(选择一个正确答案,将其对应字母填在横线上)(20分) 1.一个C程序的执行是从B; A:子程序开始B:main函数开始C:第一个函数D:第一条语句 2.C语言中,正确的字符常量是B; A:“C”B:‘\n’C:‘ABC’D:‘1234’ 3.若a是float型变量,b是char型变量,以下输入语句合法的是B;A:canf(“%6.2f%f”,&a,&b)B:canf(“%6.2f%c”,&a,&b)C:canf(“%6.2d%”,&a,&b)D:canf(“%6.2f%c”,a,b) 4.TurboC语言中,int类型和long类型数据在内存中分别占B个字节;A:4,4B:2,4C:2,2D:2,3 5.intr=0123,表示是D数; A:十进制;B:字符;C:十六进制;D:八进制6.在if(条件)语句执行时,当条件为D时C语言认为是“真”; A:TRUE;B:.T.C:0D:非零值

7.如果a[1]=--3,执行b[2]=++a[1];c[3]=a[1]++;b[2]和c[3]的值是;A:2,2;B:4,4;C:3,3;D:3,4 8.设inta、b、c;且a=10;b=4;a/=b;则表达式(a/bb+a:b-a)之值是C;A:0.5B:6;C:2;D:-2 9.对于int某p,arry[10];正确的赋值语句是__A; A:p=arry;B:某p=&arry;C:p=&arry;D:某p=&arry[9]; 10.设int某,a,b,c;计算表达式某=(a=4,b=16,c=32)后,某的值是C; A:4B:16C:32D:52 11.对于inta[][3]={1,2,3,4,5,6,7,8,9,10}说明语句, 且有:数据元素a[1][2]+a[3][1]的值为____D_____; A:15B:16C:8D:6 12.intn=97; witch(n/10-4) {cae2:n=n+1; cae3:n=n某2; cae5:n=n-2; cae7:n=n+3; default:n=n/2; } n的正确结果值是__49______

大学_C语言程序设计试题及参考答案

C语言程序设计试题及参考答案 C语言程序设计试题及答案(一) 1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分) A.switch(x) { case 1.0: printf("__ "); case 2.0 printf("____ "); } B.switch((int)x) { case 1.0: printf("__ "); case 2.0 printf("____ "); } C.switch(a+b) { case 1: printf("__ "); case 2+1: printf("____ ");

} D.switch(a+b) { case 1: printf("__ ") case c: printf("____ "); } 标准答案:C 2. 若有宏定义如下: #define X 5 #define Y X+1 #define Z Y__X/2 则执行以下printf语句后,输出的结果是( ) int a; a=Y; printf("%d ",Z); printf("%d",--a); (2分) A.7,6 B.12,6 C.12,5 D.7,5 标准答案:D 3. 下面的.符号常量定义中,正确的是 ( ) (2分) A.#define PI 3.14; B.#include PI 3.14;

C.#define PI=3.14 D.#define PI 3.14 标准答案:D 4. 以下程序的输出结果是( ) int a, b; void fun() { a=100; b=200; } main() { int a=5, b=7; fun(); printf("%d%d ", a,b); } (2分) A.100200 B.57 C.00 D.75 标准答案:D 5. 若有以下调用语句,则不正确的fun函数的首部是( ) main() { … int a[50],n; … fun(n, a[9]);

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案 一、选择题(每题2分,共40分) 1、C语言源程序的基本单位是( ) A.程序行 B.语句 C.函数 D.字符 2、C语言规定:在一个源程序中,main函数的位置()。 A.必须在最开始B.必须在系统调用的库函数的后面 C.可以任意D.必须在最后 3、在下列字符列中,合法的标识符是( ) A.p12&.a B.stud_100 C. water$12 D.88sum 4、在C语言中,要求运算的数必须是整数的运算符是() A./ B.! C.% D.= = 5、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a 的值是() A、3 B、0 C、9 D、-12 6、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为() A、1

B、2 C、3 D、4 7、执行下列程序时输入:1234567,程序的运行结果是() main() { int x,y; scanf(“%2d%*2c%1d”,&x,&y); printf(“%d\n”,x+y); } A.17 B.46 C.15 D.9 8、下述程序的输出结果是() #include void main() {int x=-1,y=4; int k; k=++x<=0&&!(y--<=0); printf("%d,%d,%d",k,x,y);} A.0,0,3 B.0,1,2, C.1,0,3, D.1,1,2 9、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if

计算机科学与技术《C语言程序设计》-试卷+答案

2018级计算机科学与技术《C 语言程序设计》考试试题 一、单项选择题(每题2分,共20分) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n ”,i,j,k);} 执行后的输出结果是( ) A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n ”,s);} 程序执行后的输出结果是( ) A )自然数1~9的累加和 B )自然数1~10的累加和 C )自然数1~9中奇数之和 D )自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun 的正确调用语句是( ) A )fun(int y,double m); B )k=fun(10,12.5); C )fun(x,n); D )void fun(n,x); 二、填空题(每空2分,共20分) 1、C 语言描述“x 和y 都大于或等于z ”的表达式是: 。 2、函数定义时涉及的基本要素是: 、 、 。 3、C 语言可以用来实现循环的结构化语句是: 、 、 。 4、判断整型变量a 即是5又是7的整数倍的C 语言表达式是: 。 5、 若x 和n 都是int 型变量,且x 和n 的初值都是6,则计算表达式x+=n++后,x 的值为: ,n 的值为: 。

重庆理工大学《C语言程序设计》比赛预赛试题及答案-(A3版)

重庆理工大学 C语言程序设计 预赛 (考试时间90分钟,满分100分) 一、单选题(共60小题,每题1分,共60分) 1. 执行下列程序中的输出语句后,x的值是______。(知识点3.10) main() {int x ; printf(“%d\n”,(x=5*6,x*2,x+20));} A)30 B)60 C)50 D)80 2. 下列程序的输出结果是_______。(知识点 3.8) main() {int x=1,y=0,z; z=(x<=0)&&(y- ->=0); printf(“%d %d% d%\n”,z,x,y);} A)0 -1 -1 B)0 -1 0 C)0 1 0 D)0 1 -1 3. 在C语言中,下列选项属于合法的长整型常数的是_______。(知识点3.3) A)0L B)1234567 C)0.0234567 D)3.14159e3 4. 下列选项中属于不正确的赋值语句的是_____。(知识点3.6) A)t++; B)n1=(n2=(n3=0)); C)k=i= =j; D)a=b,c=1; 5. 若有定义:int a,b;char x,y;并有以下输入数据: 14 22 XxYy (回车)则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是________。(知识点4.2) A) scanf(“%d %d”,&a,&b); x=getchar();y=getchar(); B) scanf(“%d%d %c %c”, &a, &b,&x,&x,&y,&y); C) scanf(“%d %d %c%c%c %c”, &a,&b,&x,&x,&y,&y); D) scanf(“%d%d %c %c”, &a, &b,&x,&y); 6. 下列转义字符不正确的是_______。(知识点3. 5) A)’\\’ B)’\’ C)’\053’ D)’\0’ 7. 下列选项可作为C语言赋值语句的是_______。(知识点4.2) A)x=3,y=5 B)a=b=6 C)i- -; D)y=int(x); 8. 当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是_______。(知识点5.2) A)c=b=a; B)(a=c)‖(b=c); C)(a=c)&&(b=c); D)a=c=b; 9. 有以下程序: main() { unsigned int a ; int b=-1; a=b; printf(“%u”,a);} 该程序运行后的输出结果是_______。(知识点4.5) A)-1 B)65535 C)32767 D)-32768 10. 若x、b、m、n均为int型变量,执行下面语句后b的值为_______。(知识

《C语言程序设计》题库及答案

《C 语言程序设计》复习题库 1、计算下面公式的值。T=1/1!+1/2!+1/3!+ ⋯⋯+1/m! 当m=5 时的结果(按四舍五入保留 3 位小数)。(注:所有变量用float 数据类型定义!)答案:1.717 2、程序填空:用* 号输出字母C的图案。 #include "stdio.h" #include "conio.h" main() { _____________ printf(" *\n"); _____________ _____________ getch(); } 3、8232 和9678,它们的个、十、百、千各位数字之和是15 的倍数,8+2+3+2=15,9+6+7+8=30 。 编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15 的倍数)的总和。(注:所 有变量用long 数据类型定义!) 答案: 1533459 4、/*下面程序的功能是:计算并输出700 以内的最大的10 个能被13 或者17 整除的自然 数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错 误!)*/ 答案:6591 #include void main() { int total=0, mc=1, k=700; int pm[10],count=0; while( (k>=2) && mc<=10 ) { if ((k%13==0) || (k%17==0)) { pm[mc] = k; mc++; } k--; } for( k=1;k<=10;k++ ) total += pm[k-1]; printf(" %d\n",total); } 5、求 x = 1+1/5+1/7+1/9+ ⋯的近似值,直到最后一项的绝对值小于10 -5 为止。 6、计算如下公式的A20值。A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ...... (按 四舍五入保留10 位小数)。答案:0.6180339850 7、求[10,1600] 之间能被7 整除的奇数之和。答案:90965

C程序设计试卷及答案

《 C程序设计》考试试题 ( 120分钟) 一、单项选择题(每小题 2分,共60分)? 1.下列运算符中优先级最高的是 ________ 。 A)< B)+ C)&& D)!= 2.C语言中的标识符只能由字母、数字和下划线组成且第一个字符 ________ 。A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母,数字或下划线中任一种 3.判断char型变量ch是否为大写字母的正确表达式是 ________ 。 A)ˊ A ˊ <=ch<= ˊ Z ˊ B)( ˊ A ˊ <=ch) AND ( ˊ Z ˊ >=ch) C)(ch>= ˊ A ˊ )&(ch<= ˊ Z ˊ ) D)(ch>= ˊ A ˊ )&&(ch<= ˊ Z ˊ ) 4.以下的for循环 ________ 。 for (x=0,y=0;(y!=123)&&(x<4);x++); A)是无限循环 B)循环次数不定 C)执行4次 D)执行3次 5. putchar函数可以向终端输出一个 ________ 。 A)字符或字符变量值 B)字符串 C)整型变量表达式的值 D)实型变量值 6.设 a,b,c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为 0的表达式是 ________ 。 A)ˊaˊ&&ˊbˊ B) a

(完整版)C语言程序设计习题集及答案

C语言程序设计 习题集 东华理工大学 2014.9

基础知识 一单项选择题(每题2分,共44分) 1 以下叙述正确的是___。 A C程序基本组成单位是语句 B C程序每一行只能写一个语句 C 简单C语句必须以分号作为结束符 D 注释语句可以嵌套 2 一个C语言程序是从___开始执行的。 A 程序中第一个函数 B 名为main的函数 C 包含文件(头文件)的第一个函数 D 程序中的第一个语句 3 请选出合法的C语言赋值语句___。 A a=b=58 B i++; C a=58,b=58 D k=int(a+b); 4 下面标识符中,合法的用户标识符是___。 A 1abc B include C a-b-c123 D char 5 以下所列的C语言整形常量中,正确的是___。 A 0x10 B 0976 C 076L D 01ff 6 C语言中下列运算符的操作数必须为整型的是___。 A % B ++ C / D = 7 设a和b均为int型变量,则执行以下语句后的输出为___。 int a=20; int b=3; printf("%d\n",a+=(b%=2)); A 20 B 21 C 0 D 23 8 已知int i;,则执行语句 i=2.6;后,i的值为___。 A 2 B 3 C 2.6 D 不确定 9 以下合法的字符常量为___。 A 'ab' B '\482' C '\' D '\xaf' 10 若y为int型变量,则执行以下语句后,y的值是___。 y=8; y+=y-=y*y; A 64 B –56 C –112 D –48 11 以下合法的浮点型常量是___。 A e-3 B 1.5e+2.4 C 3.14e+2L D 3.14 e +5 12 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已 知float a=2;int b=3;则执行下列语句输出为___。 printf("%d",sizeof(a*b)+2/5); A 4 B 8 C 6 D 7 13 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。 A 0 B -2 C 65534 D 65535 14 若x、y、z均为整型常量,且a=100,则执行下列语句后的z值为___。 x=a++; y=--a; z=x+y-a--; A 100 B 400 C 200 D 300 15 若有以下定义和语句:int u=010,v=0x10,w=10,printf("%d,%d,%d\n",u,v,w);,则输出 结果是___。 A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,10 16 设x、y为int型变量,则执行下列语句后,y的值是___。 x=5; y=x++*x++; y=--y*--y; A 529 B 2401 C 1209 D 625

C语言程序设计(第3版)-参考答案 (9)

参考答案 第 9 章编译预处理 一、选择题 二、编程题 略。 习题 一、选择题 (1)编译预处理的工作是在( A )完成的。 A)编译前B)编译时C)编译后D)执行时(2)以下选项汇总,( D )不属于编译预处理。 A)宏定义B)文件包含C)条件编译D)连接(3)以下选项中,( C )是C语句。 A)#include B)#define PI 3.1415926 C)j++; D)a=3 (4)以下叙述中错误的是( D )。 A)在程序中凡是以“#”开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号结束 C)“#define MAX 3 ”是合法的预处理命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的 (5)以下关于宏的叙述中正确的是( C )。 A)宏名必须用大写字母表示 B)宏定义必须位于源程序中所有语句之前C)宏展开没有数据类型限制D)宏调用比函数调用耗费时间(6)在宏定义#define PI 3.1415926中,用宏名代替一个( D )。 A)单精度数B)双精度数C)常量D)字符串(7)设有宏定义#define A B abcd,则宏展开时( A )。 A)宏名A用B abcd替换B)宏名A B用abcd替换 C)宏名A和宏名B都用abcd替换D)语法错误,无法替换 (8)若程序中有宏定义行#define N 100,则以下叙述中正确的是( B )。 A)宏定义行中定义了标识符N的值为整数100 B)对C源程序进行预处理时,用100替换标识符N C)对C源程序进行编译时,用100替换标识符N D)在运行时,用100替换标识符N (9)以下程序的运行结果是( B )。 #include #define M 5

《C语言程序设计基础》习题集(含答案)

第一章C语言概述 1.1、选择题 (1)一个C语言程序是由()组成。 A. 一个主程序及若干个子程序 B. 一个主程序 C. 一个主函数及若干个子函数 D. 一个主函数 (2) 一个C语言程序总是从()开始执行。 A. 主过程 B. 主函数 C. 子程序 D. 主程序 (3) main函数在源程序中的位置()。 A. 必须在最开始 B. 必须在子函数的后面 C. 可以任意 D. 必须在最后 (4) 一个C程序的执行是从()。 A. 本程序的第一个函数开始,到最后一个函数结束 B. 本程序的main函数开始,到最后一个函数结束 C. 本程序的main函数开始,通常也在main函数结束 D. 本程序的第一个函数开始,到main函数结束 (5) 以下叙述不正确的是()。 A. 一个C程序可由一个或多个函数组成 B. 一个C程序必须包含一个main函数 C. 在C程序中,注释只能位于一条语句的最后面 D. C程序的基本组成单位是函数 1.2、编程题 (1)参照本章例题,编程输出如下信息: ********** Very good! ********** (2)编写一个C程序,输出以下信息: ***** *Turbo C * * * * * * 1.3 请根据自己的认识,写出C语言的主要特点。 1.4 简述C程序主要由哪些部分构成? 1.5 用户编写的C程序上机运行要经过哪些步骤? 第二章基本数据类型和表达式 2.1 单项选择题 (1) 以下不能用作变量名的是() A)_26 B)case C)scanf D)Double (2) 以下合法的八进制数是() A)0135 B)068 C)013.45 D)o7 (3) 若变量已正确定义,以下非法的表达式是()

(完整版)C语言程序设计试卷及参考答案

《C语言程序设计》期末考试模拟试卷及参考答案(B) 2012.6.5整理 一、选择题(每题2分,共30分) 1、# include 〈stdio.h〉的结果是______ void main ( ) { int a[3][3]={1,2,3,4,5,6,7,8,9}; int s=0,i; for (i=0;i〈3;i++) s+=(*(a+i))[i]; printf("%d",s); } A.9 B。12 C.14 D。15 参考答案—D 2、设有说明语句:char a= ’\123abc';则变量a __________ A. 包含7个字符 B.包含6个字符 C。包含5个字符 D。包含4个字符 参考答案-D 3、有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是_____ A。无限次B。有语法错,不能执行 C。一次也不执行D。执行1次 参考答案—A

4、在C语言中,_____。 A。函数定义可以嵌套,但函数调用不能嵌套 B。函数定义不可以嵌套,但函数调用可以嵌套C.函数定义和调用均不能嵌套 D.函数定义和调用均可以嵌套 参考答案—B 5、以下叙述正确的是________ A)do—while语句构成的循环不能用其它语句构成的循环代替. B)do-while语句构成的循环只能用break语句退出。 C)用do—while语句构成的循环,在while后的表达式为非零时结束循环. D)用do—while语句构成的循环,在while后的表达式为零时结束循环。 参考答案—D 6、以下关于函数叙述中,正确的是。 A。在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值 B.在函数体中至少必须有一个return 语句 C.在函数体中可以定义另一个函数 D。在函数体中可以调用函数自身 参考答案—D 7、以下数组声明语句中正确的是。 A。int a,a[n]; B。int a[]; C. int a[2][3]={{1},{2},{3}}; D.int a[][3]={{1},{2},{3}}; 参考答案—C

2020-2021大学《C语言程序设计》课程考试试卷(含答案)

某大学《C语言程序设计》课程考试试卷 适用专业:考试日期:年月日 考试时间:120分钟考试形式:闭卷试卷分数:100分 一、填空题(每空1分,共25分) 1、变量名和指针作函数参数时,变量名传递的是,指针传递的是。 2、表达式!!5的值是______。 3、printf("%xn", (0x19 <<1) & 0x17);的输出结果是______。 4、只能被本文件中的其它函数所调用的函数称为,在定义此类函数时, 在函数名和函数类型前应加关键字。能被其他文件中的函数所调用的 函数称为,在定义此类函数时,一般应在该函数名和函数类型前面 加上关键字。 5、下列程序段的输出结果是_____。 char *st[ ]={"abcd","efgh","ijkl","mnop"}; printf("%s", *(st+1)+1); 6、表示“x≥y≥z”的C表达式是_______。 7、执行下列程序段,输出结果,。 #define f(a, b, x) a*x+b printf("%d, %dn", f(3,2,1), f(6, 5, f(3, 2, 1))); 8、若#define PRICE 30,则PRICE称为。 9、在C 语言程序中,在函数内部定义的变量称为______。 10、若变量c为char类型,则能正确判断出c为小写字母的表达式是。 11、执行putchar(getchar( ));语句时,当通过键盘输入字符A时,则屏幕上输出。 12、C语言中的三种基本程序结构是、和。 13、如果X = 3;Y = 5; Y += X + 8; ,则Y = 。 14、如果i = 3;j = 5; j = i + +; ,则j = , i = 。 15、如果char ch[][4] = {“abcd”,“efgh”,“ijklm”,“nopq”}; ,则*((ch+2)+2) = , *(ch[1]+2) = , *(ch+1) 代表元素的地址。 二、单项选择题(每小题2分,共50分) 1、C语言源程序文件经过C编译程序编译连接之后生成的文件后缀名为() A> .c B>.obj C>.exe D> .bas 2、表达式值为的0是() A> 3%5 B> 3/5.0 C> 3/5 D> 3<5 3、表达式!(x>0||y>0) 等价于() A> !x>0||!y>0 B> !(x>0)||!(y>0) C> !x>0&&!y>0 D> !(x>0)&&!(y>0) 4、若变量已正确定义,执行scanf("%d%d%d ",&k1,&k2,&k3);时,输入正确的是() A> 2030,40 B> 20 30 40 C> 20, 30 40 D> 20, 30,40 5、下列语句错误的是() A> printf(”%d”, 2); B> printf(”%o”, 2); C> printf(”%x”, 2); D> printf(”%f”, 2); 6、设变量定义为int s[ ]="hello\nworld\n"; ,则数组s中有()个元素 A> 12 B> 13 C> 14 D> 15 7、设变量定义为“int a[2]={1,3}, *p=&a[0]+1;”,则*p的值是() A> 2 B> 3 C> 4 D> &a[0]+1 8、若变量已正确定义并赋值,表达式-k++ 等价于() A> -(k++) B> (-k)++ C> -(k+1) D> -(++k) 9、下列运算符中,优先级从高到低依次为() A> &&,!,|| B> ||,&&,! C> &&,||,! D> !,&&,|| 10、下列程序段的输出结果是() int *p, *q, k = 1, j=10 ; p=&j; q = &k ; p = q ; (*p)++; printf("%d",*q); A> 1 B> 2 C> 10 D> 11 11、以下程序的输出结果是() main ( ) { int i, a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf(“%d%d%d”,a[2],a[5],a[8]); } A> 258 B> 741 C> 852 D> 369 12、当调用函数时,实参是一个数组名,则向函数传送的是( ) A> 数组的长度B> 数组的首地址 C> 数组每一个元素的地址D> 数组每个元素中的值 13、以下程序的输出结果是( ) main( )

C语言程序设计试题及参考答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12ACC sunD A 3、设有语句inta=4 ;则执行了语句a+=a-=a*a后,变量a的值是(A) A -24B、OC 4D 16 4、下列运算符中优先级最高的是(B) A、<B +C &&D == 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D + &以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符V逻辑与运算符<关系运算符<算术运算符 D算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5 pAd=sum++ pAd++, ++pAc;printf(“%d\n ”,pad); A 7 B 6C、5D 4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B) A INPUTx、y、z; B、scanf(“%d%d%d ”,&x,&y,&z); C scanf(“%d%d%d, x,y,z); D read(“ %d%d%d, &x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C) voidmai n() {intm ,n; scanf(“ %2d%3”,&m &n); printf(“ m=%dn=%d\n,m, n); } A m=23n=45 B m=234n=56 C m=23n=456 D 语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A) mai n() {intx ,y; scanf(“ %d ,&x);

《C语言程序》测试题及答案

c++程序设计本科 一、判断题错误的在后面写“F”,正确的写“T”,每题1分 1. 程序是描述算法的编程工具;T 2. 将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例 化 ; T 3. C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行 一些清理任务的特殊成员函数称为析构函数; T 4. 逐条翻译并执行的翻译程序称为编译程序; F 5. 把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个 共同的相关类,这种结构被称为类树;类群是由一些彼此密切相关的类和类族组成的; F 6. 如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承; T 7. 不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性; F 8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形 参; F 9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更 多的函数就可以共用同一个名字;这种在同一作用域中允许多个函数使用同一函数名

的措施被称为重载; T 8.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏 的名字;这是由作用域分辨操作符实现的,这一过程叫做作用域分辨; T 11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了;T 12.所有的表达式都有值;F 13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量;T 14.类的静态数据成员需要在定义每个类的对象时进行初始化;F 15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问;F 16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员;T 17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址;F 18.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性;T 19.字符串’hello,world”在内存中存放时,占用11个字节的空间;F 20. 用new动态申请的内存空间,必须用delete来释放 ;T

C语言程序设计试卷及答案

C语言程序设计试卷及答案(总14 页) --本页仅作为文档封面,使用时请直接删除即可-- --内页可以根据需求调整合适字体及大小--

2 C 语言程序设计 笔试试题 题号 一 二 三 四 五 六 笔试(70%) 综合 (30%) 总分 分数 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分; 2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%; 3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸; 4. 答题时间120分钟。 一、单项选择题。将正确答案填入下面框中。 (本题16分,每小题1分) 题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案 1. 有以下程序 main() {int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d\n ”,b); }则程序输出( A )。 A) 0 B) 1 C) 2 D) 3 2. 有以下定义:int a; long b; double x,y;则下列正确的是 ( A )。 A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x 号 学 名 姓 注意行为规范 遵守考试纪律

3. 若有定义 int (*p)[3];则下列说法正确的是( C )。 A) 定义了基类型为int的三个指针变量 B) 定义了一个名为 *pt、具有三个元素的整型数值 C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素 的二维数组D) 定义了基类型为int的具有三个元素的整型数组 4. 有以下程序段 main() { int x=10; while(x--); printf("x=%d\n",x);} 则最后的输出结果是:( B )。 A) x=0 B) x= -1 C) x=1 D)while构成无限循环 5. 有以下程序: int fun() {static int x=1; x *= 2; return x;} main( ) { int i,s=1 ; for(i=1 ;i<=2 ;i++) s=fun() ; printf(“%d\n ”,s) ;} 执行后的输出结果为( D )。 A) 0 B) 1 C) 8 D) 4 6. void main( ){ int k=011; printf("%d\n",k++); } }程序输出结果是( D ) A)12 B) 11 C) 10 D) 9 7. 以下C语言标识符中,不合法的是( C )。 A) _2 B) a_b C) a--b D) AaBc 3

重庆理工大学c语言上机考试复习题 (1)

1、根据公式e=1+1/(1!)+1/(2!)+1/(3!)+……。求e 的近似值,精度要求为10-6。 2、读入10个数,计算它们的和、积、平方和及和的平方。 3、计算并输出1!,2!,3!,4!,……,35!。 4、输入20个数,统计其中正、负和零的个数。 5、利用公式:)12)(12()2(......756653443*12222 +-⨯⨯⨯⨯⨯⨯⨯⨯⨯=n n n π 计算π的值(取前100项)。 6、利用公式:) 12(1)1(......9171513114+⨯-++-+-=n n π计算π的值(省略的项都<10-5)。 7、编程计算0*1+2*3+4*5+……+100*101+101*102之和。 8、编程计算5/6+6/7+7/8+……+99/100+5!+6!+7!之和。 9、编程计算1!-2!+3!-4!+5!-6!之和。 10、编程计算1/(1+2)+2/(2+3)+3/(3+4)+……100/(100+101)之和。 11、编程计算(0+1)/1+(2+3)/3+(3+4)/4+……(99+100)/100之和。 12、求100 ~ 200中能被3或7整除的自然数。 13、统计77到210中偶数的个数。 14、统计7到91中能被3整除的奇数的个数。 15、7到91中有多少能既能被2又能被3整除的数。 16、显示7到100中所有不能被5整除的数,要求每行显示5个数。 17、找出1000之内的所有完数(完数是指:该数的各因子之和正好等于该数本身,例如:6的因子是1,2,3,而6 = 1+2+3,故6是完数)。 18、求2~1000中的所有亲密数对(亲密数对是指:如果a 的因子和等于b ,b 的因子和等于a ,则(a ,b )就是亲密数对)。 19、100元钱买100只鸡,已知公鸡3元1只,母鸡1元1只,小鸡1元3只,编程输出总的方案数以及每种方案中公鸡、母鸡、小鸡的数量。 20、100匹马驮100担货,大马驮3担,中马驮2担,小马驮0.5担,编程求大、中、小马的数量。 21、编程输出如下序列的前100项,该序列的第一项为0,第二项为1,以后的奇数项为前两项之和,偶数项为前两项之差。 22、编程验证:100以内的奇数的平方除以8都余1。 23、编写一个程序,输出1~100之间所有的素数。 24、打印如下图案 * * * * * * * * * * * * * * * * * * * * * * * * * 25、打印九九表,格式如下: 1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8= 8 1*9=9 2*2=4 2*3=6 2*4=8 …… 2*9=18 3*3=9 3*4=12 ……. ……

2022年重庆理工大学公共课《C语言》科目期末试卷A(有答案)

2022年重庆理工大学公共课《C语言》科目期末试卷A(有答案) 一、填空题 1、请读程序段: int a=-1; a=a|0377; printf("%d,%o\n",a,a);以上程序段的输出结果是_______。 2、C语言的源程序必须通过【】和【】后,才能被计算机执行。 3、C语言源程序的基本单位是________ 4、若有定义语句:inte=1,f=4,g=2;float m=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是_______。 5、在C语言的赋值表达式中,赋值号左边必须是_______ 6、以下程序段通过指针变量q,但不移动q,将如图所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。请填空。(假设程序段中的所有变量均已正确说明。) for(k=0;k<10;k++) printf("%d,",_______); printf("\n"); 7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分 是_______,改正后为_______。 void add(float a,float b) {float c;

c=a+b; return c; } 8、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及 相应的格式说明。 union {int n;doublex;}num; num.n=10; num.x=10.5; printf("_______",_______); 9、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。 a+=_______;b=a-_______;a-=_______; 10、下面程序wdm的运行结果是_______。 int i,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0}; for(i=0;i<10;i++)y[x[i]]++; printf("%d\n",y[3]); 二、选择题 11、若x、i、j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值 为( )。 A.4 B.16 C.32 D.52

相关文档
最新文档