《C程序设计》复习题
一、选择题
1、以下叙述中错误的是
A)一个C程序中可以包含多个不同名的函数 B)一个C程序只能有一个主函数
C)C程序在书写时,有严格的缩进要求,否则不能编译通过 D)C程序中主函数必须用main作为函数名
2、设有以下语句char ch1, ch2; scanf(\ 若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是
A)A和B之间用逗号间隔 B)A和B之间不能有任何间隔符 C)A和B之间可以用回车间隔 D)A和B之间用空格间隔 3、以下选项中非法的字符常量是
A)'\\101' B)'\\65' C)'\\xff' D)'\\019' 4、有以下程序 # include
main( )
{ int a=0, b=0, c=0; c=(a- =a-5); (a=b,b+=4); printf(\
程序运行后的输出结果是 A)0,4,5 B)4,4,5 C)4,4,4 D)0,0,0 5、有以下程序 # include
{int a; scanf(\ if(a++<9) printf(\ else printf(\
程序运行时从键盘输入9<回车>,则输出结果是 A)10 B)11 C)9 D)8 6、有以下程序 # include
main( ) {int s=0, n;
for( n=0; n<3; n++ ) { switch(s)
{ case 0: case 1: s+=1; case 2: s+=2; break; case 3: s+=3; default: s+=4;} printf(\程序运行后的输出结果是A)1,2,4, B)1,3,6, C)3,10,14, D)3,6,10, 7、有以下程序 # include
{char a,b,c; b='1'; c='A';
for (a=0; a<6; a++) {if(a%2) putchar(b+a); else putchar(c+a); } }
程序运行后的输出结果是 A)1B3D5F B)ABCDEF C)A2C4E6 D)123456
8、设有如下定义语句 int m[]={2,4,6,8,10}, *k=m;以下选项中,表达式的值为6的是
A)*(k+2) B)k+2 C)*k+2 D)*k+=2
9、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是 #include
#define N 5
void fun(int x[N])
{ int m; for(m=N-1;m>=0; m--) scanf( \ A)&x[++m] B)&x[m+1] C)x+(m++) D)x+m 10、若有函数void fun(double a[], int *n) { ...... }
以下叙述中正确的是
A)调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送 B)形参a和n都是指针变量 C)形参a是一个数组名,n是指针变量
1
D)调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组 11、C语言源程序的基本单位是( )。
A.程序行 B.语句 C.函数 D.字符 12、在C语言中,要求运算的数必须是整数的运算符是( ) A./ B.! C.% D.= =
13、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a的值( ) A、3 B、0 C、9 D、-12
14、执行下列程序时输入:1234567,程序的运行结果是( ) main( )
{ int x,y; scanf(“-%*2c”,&x,&y); printf(“%d\\n”,x+y); }
A.17 B.46 C.15 D.9 15、下述程序的输出结果是( ) #include
{int x=-1,y=4; int k; k=++x<=0&&!(y--<=0);
printf(\
A.0,0,3 B.0,1,2, C.1,0,3, D.1,1,2
16、为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。
A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if
17、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( ) main( )
{int x; scanf(“%d“,&x); if(x++>5)printf(“%d”,x); else printf(“%d\\n”,x--); }
A.7和5 B.6和3 C.7和4 D.6和4 18、若变量c为char类型,能正确判断出c为小写字母的表达式是( ) A. 'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z') C. ('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z') 19、以下程序的输出结果为 main( )
{int i,f1,f2; f1=f2=1; for(i=0;i<4;i++)
{printf(“%d%d”,f1,f2); f1+=f2; f2+=f1; }} A.1 2 3 4 5 6 7 8 B.1 1 2 3 5 8 13 21 C.1 1 3 5 7 9 11 13 D.1 3 5 7 9 11 13 15 20、以下程序段( )。 x=-1; do
{ x=x*x;} while(! x);
A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误
21、执行语句 for (i=1;i++<4;) ; 后变量 i 的值是( )。
A.3 B.4 C .5 D.不定 22、在定义int a[5][6];后,第10个元素是( )。
A.a[2][5] B.A[2][4] C.a[1][3] D.a[1][5] 23、定义如下变量的数组:
2
int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下列语句的输出结果是( )
for(i=0;i<3;i++) printf(“%d”,x[i][2-i]);
A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 24、设int * p,i;以下正确的语句是( )。
A.*p=10; B.i=p ; C.i=*p; D.p=2*p+1; 25、有以下函数
#include
for(i=0;i<=n;i++) printf(“*”); printf(“#”);} main()
{ func(3); printf(“????”); func(4); printf(“\\n”); }
程序运行输出结果是
A ****#????***# B ***#????*****#
C **#????*****# D ****#????*****#
26、下列关系表达式中,结果为“假”的是
A) (3+4)>6 B) (3!=4)>2 C) 3<=4||3 D) (3<4)= =1 27、有以下程序
#include
main( )
{ int a=-2,b=0; while(a++&&++b); printf(\程序运行后的结果是 A)1,3 B)0,2 C)0,3 D)1,2
28、设有定义:int x=0,*p;,立刻执行以下语句,正确的语句是
A) p=x; B) *p=x; C) p=NULL; D) *p=NULL 29、下列叙述中正确的是
A)可以用关系运算符比较字符串的大小
B)空字符串不占用内存,其内存空间大小为0 C)两个连续的单引号是合法的字符常量 D)两个连续的双引号是合法的字符串常量
30、有以下程序
# include
main( )
{ char a='H'; a=(a>'A'&&a<='Z')?(a-'A'+'a'):a; printf(\
程序运行后的输出结果是 A) A B) a C) H D) h
31、有以下程序
# include
int f(int x); main( ) { int a,b=0;
for(a=0;a<3;a++) {b=b+f(a); purchar('A'+b);}} int f(int x) { return x*x+1; }
程序运行后的输出结果是 A) ABE B)BD1 C)BCF D)BCD
32、设有定义:int x[2][3];,则以下关于二维数组x的叙述错误的是
A) x[0]可看作是由3个整型元素组成的一维数组 B) x[0]和x[1]是数组名,分别代表不同的地址常量
3
C) 数组x包含6个元素
D) 可以用语句x[0]=0;为数组所有元素赋初值0
33、设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于
A) p= \ B) p='0'; C) p=0; D) p=\34、有以下程序
# include
main( )
{ int a[]={10,20,30,40},*p=a,i;
for(i=0;i<=3;i++) {a[i]=*p; p++; } printf( \ 程序运行后的输出结果是A) 30 B) 40 C) 10 D) 20
35、有以下程序
# include
#define N 3
void fun(int a[][N],int b[]) { int i,j;
for(i=0;i for(j=1;j if(b[i] main( ) { int x[N][N]={1,2,3,4,5,6,7,8,9}, y[N],i; fun(x,y); for(i=0;i 程序运行后的输出结果是 A) 2,4,8 B) 3,6,9 C) 3,5,7 D) 1,3,5 36、有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数) # include { char a[10]=\ strcpy(a+1,b+2); puts(strcat(a,c+1)); } 程序运行后的输出结果是A) a12xyz B) 12yz C) a2yz D) bc2yz 37、以下选项中,合法的是 A) char str3[]={'d', 'e', 'b', 'u', 'g', '\\0'}; B) char str4; str4=\ C) char name[10]; name=\ D) char str1[5]= \ 38、有以下程序 # include main( ) { char *s=\ int k=0,a=0; while(s[k+1]!= '\\0') { k++; if(k%2==0) { a=a+(s[k]- '0'+1); continue; } a=a+(s[k]- '0'); } 4 printf(\ } 程序运行后的输出结果是A) k=6 a=11 B) k=3 a=14 C) k=4 a=12 D) k=5 a=15 39、有以下程序 # include main( ) { char a[5][10]={ \ int i,j; char t; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(a[i][0]>a[j][0]){ t=a[i][0]; a[i][0]=a[j][0]; a[j][0]=t;} puts(a[1]);} 程序运行后的输出结果是A) fwo 40、有以下程序 # include B) fix C) two D) owo int a=1,b=2; void fun1 ( int a, int b ) { printf(\ void fun2 ( ) { a=3; b=4; } main( ) { fun1 (5,6); fun2( ); printf(\ 程序运行后的输出结果是 A) 1 2 5 6 B) 5 6 3 4 C) 5 6 1 2 D) 3 4 5 6 二、填空题 1、给定三角形的三边长,求三角形面积。 #include { double a,b,c,s,area; a=3.67; b=5.43; c=6.21; s=(a+b+c)/2; printf(\ printf(\ 2、输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。 #include { char ch; scanf(\ printf(\ 3、求 ?n! n?120#include {double s=0,t=1; int n; printf(\ 4、输出以下4*5的矩阵。 1 2 3 4 5 5 搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新资格考试认证C程序设计-复习题 全文阅读和word下载服务。
相关推荐: