C语言程序设计阅读程序
题库及答案
Newly compiled on November 23, 2020
阅读程序题
【】以下程序的输出结果是 。 main(D ) { float a;
printf(\"%g\",a); }
A) +00 B) C) D) 0
【】下面程序的输出结果是B____。 #include <> main( ) { int x=10; { int x=20; printf (\"%d,\;
}
printf(\"%d\\n\; }
A) 10,20 B) 20,10 C) 10,10 D) 20,20
【】以下程序的输出结果是___B_。 main()
{ unsigned int n; int i=-521; n=i;
printf(\"n=%u\\n\; }s\; }
A) a book! B) a book!<四个空格》 C) a bo D) 格式描述错误,输出不确定
【】下面程序的输出结果是____。 main() { int a,b;
scanf(\"%2d%3d\; printf(\"a=%d b=%d\\n\; }
A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误
【】以下程序段的输出结果是 。 int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a;
printf(\"a=%d b=%d c=%d\\n\;
A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50
【】以下程序的输出结果是 。 main() { int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; printf(\"d=%d\\n\; }
A) d=10 B) d=15 C) d=20 D) d=25
【】下面程序的输出结果为 。 main()
{ int a=1,b=0; switch(a)
{ case 1: switch (b)
{ case 0: printf(\"**0**\"); break; case 1: printf(\"**1**\"); break; }
case 2: printf(\"**2**\"); break; } }
A) **0** B) **0****2** C) **0****1****2** D) 有语法错误
【】以下程序的输出结果是 。 main()
int v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++)
switch(s[k]) { case '1': v1++; case '3': v3++; case '2': v2++; default: v4++; }
printf(\"v1=%d, v2=%d, v3=%d, v4=%d\\n\; }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=4,v2=7,v3=5,v4=8
【】下面程序的输出是 。 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(\"a=%d,b=%d\\n\; }
A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2
【】下面程序的输出是____。 main() { int num=0; while(num<=2) { num++;
printf(\"%d\\n\; } }
A) 1 B) 1 C) 1 D) 1 2 2 2 3 3 4
【】下面程序的输出结果是____。 main() { int a=1,b=0; do { switch(a)
{ case 1: b=1;break; case 2: b=2;break;
default : b=0; } b=a+b; }while(!b);
printf(\"a=%d,b=%d\; }
A) 1,2 B) 2,1 C) 1,1 D) 2,2
【】从键盘上输入\"446755\"时,下面程序的输出是#include <> main() { int c;
while((c=getchar())!='\\n') switch(c -'2') { case 0:
____。
case 1: putchar(c+4); case 2: putchar(c+4);break; case 3: putchar(c+3); default: putchar(c+2);break; }
printf(\"\\n\"); }
【】下面程序的输出结果是____。 main() { int k=0; char c='A'; do
{ switch(c++)
{ case 'A': k++;break; case 'B': k--;
case 'C': k+=2;break; case 'D': k=k%2;contiue; case 'E': k=k+10;break; default: k=k/3; } k++;
}while(c<'C') ; printf(\"k=%d\\n\; }
A) k=1 B) k=2 C) k=3 D) k=4 【】下面程序的输出结果是____。 main() { int x,i;
for(i=1;i<=100;i++) { x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf(\"%d \; } }
A) 39 81 B) 42 84 C) 26 68 D) 28 70
【】下面程序的输出结果是____。 #include <> main( )
{ int i,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\; }
A) 20 B) 21 C) 22 D) 23
【】假定从键盘上输入\回车>\下面程序的输出是____。 #include <> main() { float x,y,z;
scanf(\"%f,%f\;
z=x/y; while(1) { if(fabs(z)> { x=y; y=z; z=x/y; }
else break; }
printf(\"%f\\n\; }
A) B) C) D)
【】下面程序的输出结果是____。 main()
{ int i,j,x=0; for(i=0;i<2;i++) { x++;
for(j=0;j<-3;j++) { if(j%2) continue; x++; } x++; }
printf(\"x=%d\\n\; }
A) x=4 B) x=8 C) x=6 D) x=12
【】下面程序的输出结果是____。
main() { int i,j,k=10; for(i=0;i<2;i++) { k++; { int k=0; for(j=0;j<=3;j++) { if(j%2) continue; k++; } } k++; }
printf(\"k=%d\\n\; }
A) k=4 B) k=8 C) k=14 D) k=18
【】下面程序的输出结果是____。 #include <> 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\; }
A) 14 B) 0 C) 6 D) 不确定
【】下面程序的输出结果是____。 #include <> main( )
{ int a[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4}; int i,j,n; n=9; i=n/5; j=n-i*5-1;
printf(\"a[%d][%d]=%d\\n\; }
A) 6 B) -3 C) 2 D) 不确定
【】下面程序的输出结果是____。 int m[3][3]={ {1}, {2}, {3} }; int n[3][3]={ 1, 2, 3 };
main( )
{ printf(\"%d\\n\; /* ① */ printf(\"%d\\n\; /* ② */ }
① A) 0 B) 1 C) 2 D) 3 ② A) 0 B) 1 C) 2 D) 3
【】下面程序的输出结果是____。 #include <> main( )
{ char s1[50]={\"some string *\; printf(\"%s\\n\; }
A) some string * B) test
C) some stritest D) some string *test
【】下面程序的输出结果是____。 #include <> f(char *s) { char *p=s; while(*p!='\\0') p++; return(p-s); } main()
{ printf(\"%d\\n\; }
A) 3 B) 6 C) 8 D) 0
【】下面程序的输出结果是____。
#include <> #include <> main( )
{ char str[100] =\"How do you do\"; strcpy( str + strlen(str)/2, \"es she\"); printf(\"%s\\n\; }
A) How do you do B) es she C) How are you D) How does she
【】下面程序的输出结果是____。 #include <> func(int a,int b) { int c; c=a+b; return(c);
} main()
{ int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf(\"%d\\n\; }
A) 11 B) 20 C) 21 D) 31
【】下面程序的输出结果是____。 #include <> void fun(int *s) { static int j=0; do
{ s[j]+=s[j+1]; }while(++j<2);
} main()
{ int k,a[10]={1,2,3,4,5}; for(k=1;k<3;k++) fun(a);
for(k=0;k<5;k++) printf(\"%d\; }
A) 35756 B) 23445 C) 35745 D) 12345
【】下面程序的输出结果是____。 #include <> int k=1; main( ) { int i=4;
fun(i);
printf (\"\\n%d,%d\",i,k); /* ① */ } fun(int m) { m+=k;k+=m; { char k='B';
printf(\"\\n%d\",k-'A'); /* ② */ }
printf(\"\\n%d,%d\",m,k); /* ③ */ }
① A) 4,1 B) 5,6 C) 4,6 D) A,B,C参都不对 ② A) 1 B) -59 C) - D) A,B,C参都不对 ③ A) 5,66 B) 1,66 C) 5,6 D) A,B,C参都不对
【】下面程序的输出结果是____。
#include <> fun(int n, int *s) { int f1, f2; if(n==1||n==2) *s=1; else
{ fun(n-1, &f1); fun(n-2, &f2); *s=f1+f2; } } main() { int x; fun(6, &x); printf(\"%d\\n\;
}
A) 6 B) 7 C) 8 D) 9
【】下面程序的输出结果是____。 int w=3; main() { int w=10;
printf(\"%d\\n\; } fun(int k)
{ if(k==0) return(w); return(fun(k-1)*k); }
A) 360 B) 3600 C) 1080 D) 1200
【】下面程序的输出结果是____。 #include <> funa(int a) { int b=0; static int c=3; a=c++,b++; return(a); } main() { int a=2,i,k; for(i=0;i<2;i++) k=funa(a++); printf(\"%d\\n\; }
A) 3 B) 0 C) 5 D) 4
【】下面程序的输出结果是____。 #include <> void num() { extern int x,y; int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5; x=a-b; y=a+b; num();
printf(\"%d,%d\\n\; }
A) 12,2 B) 5,25 C) 1,12 D) 输出不确定
【】下面程序的输出结果是____。 main() { int a=2,i; for(i=0;i<3;i++) printf(\"%4d\; } f(int a) { int b=0; static int c=3; b++; c++;
return(a+b+c); }
A) 7 7 7 B) 7 10 13 C) 7 9 11 D) 7 8 9
【】下面程序的输出结果是____。 #include <> try( )
{ static int x=3; x++; return(x); } main( ) { int i, x;
for(i=0; i<=2; i++ ) x=try( );
printf(\"%d\\n\; }
A) 3 B) 4 C) 5 D) 6
【】下面程序的输出结果是____。 #include <> main( ) { int x=1;
void f1( ), f2( ); f1( ); f2(x);
printf(\"%d\\n\; }
void f1(void) { int x=3; printf(\"%d \;
} void f2( x ) int x;
{ printf(\"%d \; }
A) 1 1 1 B) 2 2 2 C) 3 3 3 D) 3 2 1
【】下面程序的输出结果是____。 #include <>
#define SUB(X,Y) (X)*Y main() { int a=3,b=4;
printf(\"%d\\n\; }
A) 12 B) 15 C) 16 D) 20
【】下面程序的输出结果是____。 main()
{ int a[]={1,2,3,4,5,6}; int *p; p=a;
printf(\"%d \; printf(\"%d \; printf(\"%d \; printf(\"%d \; p+=3;
printf(\"%d %d \; }
A) 1 2 3 3 5 4 B) 1 2 3 4 5 6 C) 1 2 2 3 4 5 D) 1 2 3 4 4 5
【】下面程序的输出结果是____。 main()
{ int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p=a; p+=6;
printf(\"%d \; /* ① */ printf(\"%d \; /* ② */ printf(\"%d \; /* ③ */ printf(\"%d\;/* ④ */ }
A) 7 7 7 7 B) ②句语法错误 C) ③句语法错误 D) ④句语法错误
【】下面程序的输出结果是____。 #define FMT \"%X\\n\" #include <>
main( )
{ static int a[ ][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; printf( FMT, a[2][2]); /* ① */ printf( FMT, *(*(a+1)+1) ); /* ② */ }
① A) 9 B) 11 C) A D) B
② A) 6 B) 7 C) 8 D) 前面三个参均是错误的
【】下面程序的输出结果是____。 #include <> main ( )
{ int a[]={1, 2, 3, 4, 5} ; int x, y, *p; p=&a[0]; x=*(p+2);
y=*(p+4);
printf(\"%d,%d,%d\\n\; }
A) 1,3,5 B) 1,2,3 C) 1,2,4 D) 1,4,5
【】下面程序的输出结果是____。 void ive(x,n) int x[],n; { int t,*p; p=x+n-1; while(x
return; } main()
{ int i,a[]={1,2,3,4,5,6,7,8,9,0}; ive(a,10); for(i=0;i<10;i++) printf(\"%d \; printf(\"\\n\"); }
A) 1 2 3 4 5 6 7 8 9 0 B) 0 9 8 7 6 5 4 3 2 1 C) 1 3 5 7 9 2 4 6 8 0 D) 0 8 6 4 2 9 7 5 3 1
【】下面程序的输出结果是____。 #include \"\" fun(char *w,int n)
{ char t,*s1,*s2; s1=w;s2=w+n-1; while(s1 A) 7654321 B) 1717171 C) 7171717 D) 1711717 【】下面程序的输出结果是____。 #include <> char *p = \"abcdefghijklmnopq\" ; main( ) { int i=0; while( *p++!='e' ); printf(\"%c\\n\; } A) c B) d C) e D) f 【】下面程序的输出结果是____。 #include <> f(int x, int y) { return (y-x); } main( ) { int a=5, b=6, c; int f(), (*g)()=f; printf(\"%d\\n\; } A) 1 B) 2 C) 3 D) 前面三个参均是错误的 【】下面程序的输出结果是____。 #include <> main( ) { int a=1,*p,**pp; pp=&p; p=&a; a++; printf (\"%d,%d,%d\\n\; } A) 2,1,1 B) 2,1,2 C) 2,2,2 D) 程序有错误 【】下面程序的输出结果是____。 main() { char *alpha[7]={\"ABCD\X\; char **p; int i; p=alpha; for(i=0;i<4;i++) printf(\"%c\; printf(\"\\n\"); } A) AEIM B) BFJN C) ABCD D) DHLP 【】下面程序的输出结果是____。 #include <> char *pp[2][3]={ \"abc\\"defgh\\"ijkl\\"mnopqr\\"xyz\; main ( ) { printf(\"%c\\n\; /* ① */ printf(\"%c\\n\; /* ② */ printf(\"%c\\n\; /* ③ */ printf(\"%c\\n\; /* ④ */ printf(\"%s\\n\; /* ⑤ */ } ① A) a B) d C) i D) m ② A) a B) d C) i D) m ③ A) h B) l C) q D) w ④ A) k B) o C) u D) z \"stuvw\ ⑤ A) ijkl B) mnopqr C) stuvw D) xyz 【】下面程序的输出结果是____。 #include \"\" struct str1 { char c[5]; char *s; }; main( ) { struct str1 s1[2]={ {\"ABCD\"\"EFGH\\"LMN\; struct str2 { struct str1 sr; int d; }s2={\"OPQ\",\"RST\",32767}; struct str1 *p[2]; {\"IJK\",, p[0]=&s1[0]; p[1]=&s1[1]; printf(\"%s\",++p[1]->s); /* ① */ printf(\"%c\"② */ } ① A) LMN B) MN C) N D) IJK ② A) O B) P C) Q D) R 【】以下程序的输出结果是____。 struct st { int x,*y; }*p; int s[]={10,20,30,40}; struct st a[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]}; main() { p=a; printf(\"%d\\n\; } A) 10 B) 11 C) 20 D) 21 【】以下程序的输出结果是____。 #include <> main() { union EXAMPLE { struct { int x,y; }in; int a,b; }e; =1;=2; } A) 2,3 B) 4,4 C) 4,8 D) 8,8 【】下面程序的输出结果是____。 #include <> main() { union { int i[2]; long k; char c[4]; }r,*s=&r; s->i[0]=0x39; s->i[1]=0x38; printf(\"%c\\n\; } A) 39 B) 9 C) 38 D) 8 【】下面程序的输出是 。 main ( ) { printf(\"%d\\n\; } A) -1 B) 0 C) 1 D) 程序是错误的 参 【】参:D 注释:程序中除法运算的两个操作数均是整 型,运算结果也是整型。 【】参:B 注释:C语言允许在程序块(分程序)中说明变 量。 【】参:C 注释:变量i中的负号传送给变量n后,因n 是无符号数,已不作为负号处理。 【】参:D 注释:对变量x的――操作是后缀形式,变量 x的减1操作要在执行完 printf函数之后才进行,所以变量x的值在输出的时候仍然保持原值10。 【】参:B 注释:C语言在执行printf()时,对函数中的表 达式表列的处理顺序是从后向前,即先处理n- -,再处理n++,最后处理n,而且每一个表达式作为一个处理单元,也就是说在不同的表达式中自增自减运算是单独考虑的。 【】参:A 注释:变量x和变量y做按位与,结果为 0x0200,右移4位为0x0020,再与0x005f做按位或,最后结果为0x007f。 【】参:A 注释:逗号表达式的结果是用逗号分开的最后 一个表达式的值,此题由于 c=='A'的值是0,所以逗号表达式的值为0。 【】参: B 【】参: A 【】参: C 注释:在输出格式描述\"%\"中,m是输出总长 度,n是实际字符的个数,这里m没有给出,则输出总长度就是实际输出字符的个数。 【】参: C 【】参:B 【】参:C 【】参:B 【】参:D 【】参:A 【】参: C 【】参:A 【】参: C 注释:在switch语句中,case本身仅起到语句 标号的作用,不会改变语句的流程,执行break语句才能退出当前的switch语句。 【】参: D 注释:siwtch语句的表达式中,变量c是后缀 的增一运算,第一次执行do-while循环时,执行case 'A'后面的语句。 【】参: D 【】参: B 【】参: B 注释:fabs()是浮点数绝对值函数。 【】参: A 【】参: C 注释:C语言允许在程序块(分程序)内说明变量,如果在程序块内说明的变量和程序块外的变量同名,在块外说明 的变量在块内是不可见的。可将此题和【】进行比较,加深理解。 【】参: C 【】参: B 【】参: ① D ② A 【】参:D 【】参: B 注释:输出结果为字符串长度。 【】参: D 注释:字符串拷贝函数strcpy()要求的两个参数都是字符串首地址。本题中第二个参数是字符串常量,接受这个字符串的第一个参量不是直接给出字符数组名,而是进行了地址运算后的结果。由于str字符串的长度是13,除2取整后是6,第一个参数给出的地址是字符数组str的首地址加6,也就是原来字符串中第二个空格的位置,把\"es she\"从该处放入,字符串str变为\"How does she\"。 【】参: C 注释:main函数调用func函数时,第一个实参使用的是逗号表达式的值,也就是x+y的结果。由于对变量x、y、z进行的是后缀运算,所以函数func的参数值是13和8。 【】参: C 【】参: ① C ② A ③ C 【】参: C 【】参: B 注释:函数fun进行了递归调用,实际进行的运算是5×4×3×2×1×3×10。主函数内说明的局部变量w屏蔽了外部变量w,所以在主函数中外部变量w是不可见的,在调用printf函数时表达式\"fun(5)*w\"中w的值是10。 【】参: D 注释:main函数三次调用了函数funa,在funa函数中的静态变量c仅在第一次调用时进行了初始化,再次调用时不再对静态变量赋初值。 【】参: B 注释:main函数和num函数中都说明了变量a和b,由于它们是内部变量,所以它们分别在说明它们的函数内有 效。外部变量x和y在函数num之后被说明,而在num函数中又要引用它们,所以在num函数中用关键字\"extern\"说明变量x和y是一个外部变量,也就是通知计算机这两个变量在fun函数以外被说明,此处不是定义两个int型变量。 【】参: D 注释:函数f中的变量c是静态变量,仅在第一次调用函数f时它被初始化为3,第二次调用函数f时c的值是4,第三次调用函数f时c的值是5。 【】参: D 【】参: D 注释:程序中有三个\"x\"分别在三个不同的函数中,这三个\"x\"都是自动变量,所以三个\"x\"分别局部于三不同的函数,在三个函数中对\"x\"的操作互不影响。 【】参: A 【】参: A 注释:*(++p)和*++p都是指针变量值前加1,第一次指向a[1],第二次指向a[2];a+3是a[3]的地址。 【】参: C 注释:②句没有语法错误,但是a+6指向数组之外,因为a是a[0]的地址,a+1是a[1]的地址,a+2是a[2]的地址,显然数组a没有a[6]分量。③句错误,因为a[1]是地址常量,它是a[1][0]的地址,对于地址常量是不可以进行赋值运算的。 【】参: ① D ② A 注释:如果FMT定义为\"%x\\n\",则输出的16进制数据用小写字母表示。 【】参: A 注释:语句\"p=&a[0]\"表示将数组a中元素a[0]的地址赋给指针变量p,则p就是指向数组首元素a[0]的指针变量,\"&a[0]\"是取数组首元素的地址。对于指向数组首址的指针,p+i(或a+i)是数组元素a[i]的地址,*(p+i)(或*(a+i))就是a[i]的值。 【】参: B 【】参: D 【】参: D 【】参: A 注释:变量g是指向函数的指针,(*g)(a,b)是调用指针g所指向的函数。 【】参: C 注释:p是指针,pp是指向指针的指针。 【】参: A 注释:对于指向数组的指针变量可以做下标运算,p[i]和alpha[i]都是指向字符串的首地址,*p[i]取出字符串的第一个字符。 【】参: ① D ② A ③ D ④ D ⑤ B 注释:pp是一个二维指针数组,pp+1指向数组的第二维,*(pp+1)是第二维的起始地址,**(pp+1)是第二维第一个元素的地址,***(pp+1)是第二维第一个元素的内容,所以,①的参应选D。*(pp+1)+1是第二维第二个元素的地址,*(*(pp+1)+1)是第二维第二个元素,(*(*(pp+1)+1))[4]则是第二维第二个元素所指字符串下标为4的元素,即是字符w,故③应当选D。 【】参: ① B ② C 【】参:D 【】参:C 注释:联合体成员的取值是最后一次给成员赋的值。 【】参: B 注释:整型数组i和字符数组c共用存储空间,给i赋值也等于给c赋值,所以s->c[0]=0x39,所以输出9。 【】参:A 注释:基本概念。EOF是由C语言在头文件中定义的,用户可以直接使用。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务