您好,欢迎来到99网。
搜索
您的当前位置:首页C语言试卷02(03版)

C语言试卷02(03版)

来源:99网
1.若有定义int a=3;则执行完a+=a-=a*a后,a的值是。 2.若有定义int x=3,y=3;则执行完表达式++x||++y;后,y的值是。 3.若有定义int a[ ]={3,8,6,9,5,2},*p=a;则表达式*(p+3)的值是。 4.求表达式 sizeof(long)+sizeof(float) 的值是。 5.若有定义int a=1234;求表达式a&0377的值是。

6.已有定义:int x=3,y=4,z=5;求表达式!(x+y)+z-1&&y+z/2的值是。

7.设a和b均为double型常量,且a=5.5、b=2.5,求表达式(int)a+b/b的值是。 8.已有定义:int a=3;求表达式 a+'\\101' 的值是。 9.求表达式 sizeof(int)+sizeof(double) 的值是。

10.已有定义:int a=3,b=10,c=15;求表达式 a|b&c 的值是11。 11.以下4组用户定义标识符中,全部合法的一组是  A) _main B) If C) txt D) int enclude -max REAL k_2 sin turbo 3COM _001

12.若以下选项中的变量已正确定义,则正确的赋值语句是  A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 13.设有以下定义 int a=0; double b=1.25; char c=‟A‟;  #define d 2

 则下面语句中错误的是

 A) a++; B) b++ C) c++; D) d++;

14.设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符

的是

A) (a+B) *h/2 B) (1/2)*(a+B) *h C) (a+B) *h*1/2 D) h/2*(a+B) 15.设有定义:int a,*pa=&a;

以下scanf语句中能正确为变量a读入数据的是 A) scanf(“%d”,&pa); B) scanf(“%d”,a) ; C) scanf(“%d”,pa) ; D) scanf(“%d”,*pa) ;

16.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是  A) if((a>b) &&(b>c) ) k=1; B) if((a>b)||(b>c) ) k=1;  else k=0;

 C) if(a<=b) k=0; D) if(a>b) k=1;  else if(b<=c) k=1; else if(b>c) k=1;  else k=0; 17.有以下程序 main( ) { char k; int i;  for(i=1;i<3;i++)  { scanf(“%c”,&k);  switch(k)

 { case „0‟: printf(“another\\n”);  case „1‟: printf(“number\\n”); } } }

 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是

A) another B) another C) another D) number

number number number numbe another number

18.有以下程序 main( )

{ int x=0,y=5,z=3;

 while(z-->0&&++x<5) y=y-1;  printf(“%d,%d,%d\\n”,x,y,z); }

程序执行后的输出结果是

A) 5,-2,-5 B) 3,2,-1 C) 4,3,-1 D) 3,2,0 19.有以下程序 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中的偶数之和 20.有以下程序

void f(int v , int w) { int t;  t=v;v=w;w=t; }

main( )

{ int x=1,y=3,z=2;  if(x>y) f(x,y);  else if(y>z) f(y,z);  else f(x,z);

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

执行后输出结果是 A) 1,2,3 B) 3,1,2 C) 1,3,2 21.有以下定义和语句  int a[3][2]={1,2,3,4,5,6,},*p[3];  p[0]=a[1];

 则*(p[0]+1)所代表的数组元素是  A)a[0][1] B) a[1][1] C) a[1][0] 22.有以下程序

 void fun(int *a,int i,int j)  { int t;  if(i { t=a;a=a[j];a[j]=t;  i++; j--;  fun(a,i,j);} } main()

{ int x[]={2,6,18},i;

D) 2,3,1 D)a[1][2] fun(x,0,3);

for(i=0;i<4;i++) printf(\"%2d\ printf(\"\\n\");}

程序运行后的输出结果是

A)1 2 6 8 B) 8 6 2 1 C) 8 6 1 2 D) 8 1 6 2 23.有以下程序  main( )

{ unsigned char a,b;  a=4|3; b=4&3;

 printf(“%d %d\\n”,a,b); } 执行后输出结果是

A) 7 0 B) 0 7 C) 1 1 D) 43 0 24.有以下程序  main()

 { int a=7,b=8,*p,*q,*r;  p=&a;q=&b;  r=p; p=q;q=r;

 printf(\"%d,%d,%d,%d\\n\}  程序运行后的输出结果是

 A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,7 25.有以下程序 #define f(x) x*x main( )

{ int i;  i=f(4+4)/f(2+2);  printf(“%d\\n”,i); } 执行后输出结果是

A) 22 B) 28 C) 16 D) 4 1.以下选项中合法的用户标识符是_____。 A) long B) _2Test C) 3Dmax D) A.dat 2.以下非法的赋值语句是____。

A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;

26.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、 j的值为2、k的值为3,以下选项中正确的输入语句是______。 A) scanf(\"%2d%2d%2d\ B) scanf(\"\"%d %d %d\ C) scanf(\"%d,%d,%d\ D) scanf(\"i=%d,j=%d,k=%d\

27.设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是____。 A) printf(\"x=%d\\n\B) printf(\"x=%ld\\n\ C) printf(\"x=%8dL\\n\D) printf(\"x=%LD\\n\ 28.若有以下程序: main() {int k=2,i=2,m;

m=(k+=i*=k); printf(\"%d, %d\\n\ }

执行后的输出结果是______。

A) 8,6 B) 8,3 C) 6,4 D) 7,4 29.有以下程序 main()

{char a[]={'a','b','c','d','e','f','g','h','\\0'}; int i,j; i=sizeof(a); j=strlen(a); printf(\"%d,%d\\n\}

程序运行后的输出结果是______。 A) 9,9 B) 8,9 C) 1,8 D) 9,8 30.以下叙述中正确的是______。 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main()函数必须放在其它函数之前

D) 所有被调用的函数一定要在调用之前进行定义的 平均分并输出,程序如下: main() {int n,k;

float score,sum,ave; sum=0.0;

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

{scanf(\"%f\sum+=score;} ave=sum/4.0;

printf(\"NO%d:%f\\n\ }

}

上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置 不正确。这条语句是______。 A) sum=0.0; B) sum+=score;

C) ave=sum/4.0; D) printf(\"NO%d:%f\\n\ 32.有以下程序段 int n=0,p;

do {scanf(\"%d\while(p!=12345&&n<3); 此处do-while循环的结束条件是______。 A) p的值不等于12345并且n的值小于3 B) p的值等于12345并且n的值大于等于3 C) p的值不等于12345或者n的值小于3 D) p的值等于12345或者n的值大于等于3 33.有以下程序 main()

{int a=15,b=21,m=0; switch(a%3) {case 0:m++;break; case 1:m++; switch(b%2) {default:m++; case 0:m++;break; } }

printf(\"%d\\n\

}

程序运行后的输出结果是______。 A) 1 B) 2 C) 3 D) 4

34.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是______。 A) p=q; B) *p=*q; C) n=*q; D) p=n; 35.有以下程序 void fun(char *c,int d) {*c=*c+1;d=d+1; printf(\"%c,%c,\ } main()

{char a='A',b='a';

fun(&b,a); printf(\"%c,%c\\n\ }

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

A) B,a,B,a B) b,B,A,b C) A,b,A,b D) 36.有以下程序 int f(int n)

{if (n==1) return 1; else return f(n-1)+1; } main() {int i,j=0;

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

a,B,a,B printf(\"%d\\n\ }

程序运行后的输出结果是______。 A) 4 B) 2 C) 3 D) 1 37.有以下程序 #include main()

{char *p=\"abcde\\0fghjik\\0\"; printf(\"%d\\n\ }

程序运行后的输出结果是______。 A) 12 B) 15 C) 6 D) 5 38.有以下程序 struct STU

{char num[10]; float score[3]; } main()

{struct STU s[3]={{\"20021\{\"20022\ {\"20023\ int i; float sum=0;

for(i=0;i<3;i++) sum=sum+p->score[i]; printf(\"%6.2f\\n\}

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

A) 260.00 B) 270.00 C) 280.00 D) 285.00 39.以下程序运行后的输出结果是【 】。

main()

{int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; printf(\"%d,%d\\n\ }

40.以下程序运行后的输出结果是【 】。 main() {int x=15;

while(x>10&&x<50) {x++;

if(x/3){x++;break;} else continue; }

printf(\"%d\\n\ }

41.有以下程序: #include main() {char c;

while((c=getchar())!='?') putchar(--c); }

程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为【42.以下程序运行后的输出结果是【 】。 void fun(int x,int y)

】。 {x=x+y;y=x-y;x=x-y; printf(\"%d,%d,\ main() {int x=2,y=3; fun(x,y);

printf(\"%d,%d\\n\ }

43. 表示“整数x的绝对值大于5”时值为“真”的C语言表达式是【 44. 以下函数用于求出两个整数之和,并通过形参将结果传回,请填空。 void func(int x,int y, 【 】z) {*z=x+y; }

45.下面程序的运行结果是:【 】。 #define N 10 #define s(x) x*x #define f(x) (x*x) main() {int i1,i2;

i1=1000/s(N);i2=1000/f(N); printf(\"%d %d\\n\ }

46.下面程序的运行结果是:【 】。 void swap(int *a,int *b) {int *t;

】。 t=a;a=b;b=t; } main()

{int x=3,y=5,*p=&x,*q=&y; swap(p,q);

printf(\"%d %d\\n\ }

47.下面程序的运行结果是:【typedef union student {char name[10]; long sno; char sex; float score[4]; }STU; main() {STU a[5];

printf(\"%d\\n\ }

48.以下程序的输出结果是【 void fun() {static int a=0;

a+=2; printf(\"%d\ } main()

】。】。 {int cc;

for(cc=1;cc<4;cc++) fun(); printf(\"\\n\"); }

49.若要使指针p指向一个double类型的动态存储单元,请填空。 p=【 】malloc(sizeof(double));

50.以下函数把b字符串连到a字符串的后面,并返回a中新字符串的长度, 请填空。

strcen(char a[],char b[]) {int num=0,n=0;

while(*(a+num)!=【 】) num++;

while(b[n]){*(a+num)=b[n];num++;【 】;} return num; }

51.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。

#include #define N 100 int fun(int(*a)[N]) {int row,col,max,min; for(row=0;row{for(max=a[row][0],col=1;col}

return min; }

52.已知字符A的ACSII码值为65,以下语句的输出结果是【 】 char ch=‟B‟;

printf(“%c %d\\n”,ch,ch); 53.有以下程序 main( ) {int t=1,i=5;  for(;i>0;i--) t*=i;  printf(“%d\\n”,t); }

执行后输出结果是【 】 54.有以下程序 #include  main( )

{char ch1,ch2; int n1,n2;  ch1=getchar(); ch2=getchar();  n1=ch1-„0‟; n2=n1*10+(ch2-„0‟);  printf(“%d\\n”,n2); }

程序运行时输入:12<回车>,执行后输出结果是【55.以下程序运行后的输出结果是【 】。  main()

】。 {int a,b,c;  a=25;  b=025;  c=0x25;

 printf(\"%d %d %d\\n\  }

56.有以下程序 void f( int y,int *x) {y=y+*x; *x=*x+y;}  main( )  {int x=2,y=4;  f(y,&x);

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

执行后输出的结果是【 】。 57.有以下程序 main( )

{ int n=0,m=1,x=2;

 if(!n) x-=1; if(m) x-=2; if(x) x-=3;  printf(“%d\\n”,x);}

执行后输出结果是【 】。

58.以下程序运行后的输出结果是【 main()

{int x=1,y=0,a=0,b=0;

】。 switch(x) {case 1:switch(y) {case 0:a++; break; case 1:b++; break; }

 case 2:a++;b++; break;  }

 printf(\"%d %d\\n\  }

59.以下程序读入数据到数组中,统计其中正数的个数,并计算它们之和。  请填空。  main()

 {int i,a[20],sun,count;  suum=count=0;

 for(i=0;i<20;i++) scanf(\"%d\【 】);  fro(i=0;i<20;i++)  { if(a[i]>0)  {count++;  sum+=【 】 ;  } }

printf(\"sum=%d,count=%d\\n\ }

60.以下程序中,for循环体执行的次数是【 】。

 #define N 2  #define M N+1  #define K M+1*M/2  main()  { int i;  for(i=1;i61.以下程序中给指针p分配三个double型动态内存单元,请填空。 # include main ( )  {double *p;

 p=(double *) malloc(【 】);  p[0]=1.5;p[1]=2.5;p[2]=3.5;  printf(“%f%f%f\\n”,p[0],p[1],p[2]);  }

62.下列程序的运行结果是:【 】 #include char *ss(char *s) { return s+strlen(s)/2;} main( )

{char *p,*str=”abcdefgh”; p=ss(str); printf(“%s\\n”,p);

}

63.下面程序的运行结果是:【 】 int f( int a[ ], int n)

{if(n>1) return a[0]+f(&a[1],n-1);  else return a[0]; } main ( )

{int aa[3]={1,2,3},s;

 s=f(&aa[0],3); printf(“%d\\n”,s); }

.请将以下程序的两个空填写适当内容,使程序能正确运行。 【 】( double,double); main() {double x,y;

scanf(\"%lf%lf\【 】); printf(\"%lf\\n\  }

 double max(double a,double b) { return(a>b?a:b); } 65.程序修改题

下列给定程序中函数fun的功能:从s所指字符串中,找出与t所指字符串相同 的子串的个数作为函数值返回。

例如:当s所指字符串中的内容为\"abcdabfab\所指的字符串的内容为\"ab\", 则函数返回整数3。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构! 【试题程序】

#include #include #include int fun(char *s,char *t) { int n; char *p,*r; n=0; while (*s) { p=s; r=t; while(*r)

if(*r==*p) { r++;p++ } else break; if(r=='\\0') n++; s+1;} return n; } main()

{ char s[100],t[100]; int m; clrscr();

printf(\"\\nPlease enter string s:\"); scanf(\"%s\printf(\"\\nPlease enter string t:\"); scanf(\"%s\m=fun(s,t);

printf(\"The result is: m=%ds\\n\

66.程序修改题

下列给定程序中函数fun的功能:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。

请改正函数fun中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 【试题程序】

#include #include #define N 20 int fun(int *a, int n) { int i, m, t, k; for(i=0;i<2;i++) { m=0;

for(k=i;ka[m]) k=m; } t=a[i]; a[m]=t; a[i]=a[m]; } } main()

{ int x, b[N]={11,5,12,0,3,6,9,7,10,8}, n=10, i; clrscr();

for(i=0;ifor(i=0;i67.程序设计题

编写一函数,用来删除字符串中的所有空格。

例如,假定输入的字符串为“asd af aa z67”,则输出为:“asdafaaz67”。 注意:部分源程序如下,请不要改动main函数和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 【试题程序】 #include #include #include void fun(char *str) { } main() {char str[81]; int n; clrscr();

printf(\"Input a string: \"); gets(str); puts(str);

fun(str);

printf(\"* * * str: %s\\n\}

68.程序设计题。

函数fun的功能:将s字符串中ASCII码值为偶数的字符删除, 串中剩余字符形成一个新串放在t数组中。

例如,若s串中的内容为:“ABCDEFG12345”,其中字符B的 ASCII码值为偶数、其中字符2的ASCII码值为偶数,都应当删除, 其他依此类推。最后t数组中的内容应是:“ACEG135”。 注意:部分源程序如下,请勿改动主函数main,仅在函数fun的 花括号中填入你编写的若干语句。 【试题程序】 #include #include #include void fun(char s[],char t[]) { } main()

{ char s[100],t[100]; clrscr()

printf(\"\\nPlease enter string S:\"); scanf(\"%s\ fun(s,t);

printf(\"\\nThe result is: %s\\n\ }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务