C语言重点习题001 下载本文

(8)设有定义:int a; float b; 执行 scanf(\语句时,若从键盘输入

C语言习题

一、选择题

(1)下列叙述中错误的是 A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成 C)C程序可以由一个或多个函数组成

D)一个C函数可以单独作为一个C程序文件存在 (2)下列叙述中正确的是

A)每个C程序文件中都必须要有一个main()函数 B)在C程序中main()函数的位置是固定的

C)C程序中所有函数之间都可以相互调用,与函数所在位置无关 D)在C程序的函数中不能定义另一个函数 (3)下列定义变量的语句中错误的是

A)int _int; B)double int_; C)char For; D)float US$; (4)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是 A)++x,y=x--

B)x+1=y

C)x=x+10=x+y D)double(x)/10 (5)以下关于逻辑运算符两侧运算对象的叙述中正确的是

A)只能是整数0或1

B)只能是整数0或非0整数

C)可以是结构体类型的数据 D)可以是任意合法的表达式

(6)若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中

的条件表达式(x-y) 等价的是 A)(x-y>0)

B)(x-y<0)

C)(x-y<0||x-y>0)

D)(x-y==0)

(7)有以下程序

main()

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

z=x++,y++,++y;

printf(\ }

程序运行后的输出结果是

A)2,3,3

B)2,3,2

C)2,3,1

D)2,2,1

876 543.0<回车>,a和b的值分别是

A)876和543.000000

B)87和6.000000 C)87和543.000000 D)76和

543.000000

(9)、C语言源程序名的后缀是

A) .exe B) .c C) .obj D) .cpp (10)、以下选项中合法的标识符是

A)for B)1x1 C)_str1 D)1_ _ (11)、不合法的常量为

A)123L B)1.23e2.5 C)077 D)0xa5 (12)、结构化程序设计的三种基本结构是

A)顺序结构 选择结构 循环结构 B) 选择结构 循环结构 分支结构 C) 选择结构 循环结构 模块结构 D) 共同体 结构体 文件 (13)、若变量均已正确定义并赋值,以下合法的C语言赋值语句是

A) x=y==8; B) x=i*n%6.5; C) x+n*7=i; D) x=8=7+1; (14)、执行语句 for(i=0;i++<3; ); 后,变量i的值为

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

(15)、已知字母A的ASCII码为65,程序运行后的输出结果是 main()

{ char c1=’A’;

c1=c1+32; printf(\}

A)输出无定值 B)A,97 C)65,97 D) a,97 (16)、以下程序运行结果是

main()

{ int m=3,y=5; y+=y-=m*=y; printf(\ A) -10 B) -20 C) -8 D) -2 (17)、要说明一个有4个元素的整型一维数组,应当选择语句 ( )。

A)int a[3]; B)int a[2,2]; C)int a[ ]; D)int a[4]; (18)、有以下语句:int b;char c[10];则正确的输入语句是( )。

1

A) scanf(“%d%s”,&b,&c); B) scanf(“%d%s”,&b, c); C) scanf(“%d%s”, b, c); D) scanf(“%d%s”, b,&c); (19)、以下程序运行的结果是

main() {int i=5; do

{if (i%3==1) if(i%5==2)

{printf(“%d”,i);break;} i++;

}while(i!=0); printf(“\\n”); }

A)7 B)35 C)5 D) 26 (20)、为了完成把字符串s1赋值给s2,应当使用

A)s1==s2 B)s1=s2 C)strcpy(s2,s1) D) strcpy(s1,s2) (21)、已知:char b[5],*p=b; 则正确的赋值语句是

A)b=”good”; B)*b=”good C)p=”good D)*p=”good (22)、有以下程序,字母A的ASCII码值为65。程序运行后的输出结果是

#include main()

{ char *s={\ do

{ printf(\ } while (*s);

}

A)6666 B)5678 C)3333 D)ABCD

(23)、若有以下定义int x[8],*pt=x; 则对数组元素的正确引用是

A)*&x[8] B)*(x+3) C)*(pt+8) D)pt+3

(24)、以下叙述中正确的是

A) 用户定义的函数中必须有return语句

B) 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值 C) 函数的return语句中必须有表达式

D) 用户定义的函数中若没有return语句,则应当定义函数为void类型 (25)、有以下定义

union data

{ int d1; float d2; }a; 则下面叙述中错误的是

A) 变量a与成员d2所占的内存字节数相同

B) 变量a中各成员的地址相同 C) 变量a和各成员的地址相同

D) 若给a.d1赋99后, a.d2中的值是99.0 (26)、以下程序的运行结果是

#include void main()

{ char a=2; printf(\

A) 40 B) 16 C) 8 D) 4 (27)、以\只读\方式打开文本文件c:\\zjh.dat,下列语句中哪一个是正确的。

A)fp=fopen(\C) fp=fopen(\(28)有以下程序 main()

{ int a=0, b=0;

a=10; /* 给a赋值 b=20; 给b赋值 */ printf(\输出计算结果 */ }

程序运行后的输出结果是

A)a+b=10

B)a+b=30

C)30

D)出错

2

(29)在嵌套使用if语句时,C语言规定else总是 A)和之前与其具有相同缩进位置的if配对 B)和之前与其最近的if配对

C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对

二、分析程序运行结果

1、执行以下程序时输入I am teacher<回车>,则输出结果是_______【1】_______。

main()

{ char a[20]=\

scanf(\ printf(\ %s\\n\ }

2、以下程序段中的变量已经正确定义,则程序段输出结果是_______【2】_______。

for(i=0 ; i<4;i++,i++)

for (k=1 ; k<3; k++); printf(\

3、以下程序的输出结果是_______【3】_______。

#include void main() { int n=3456,d;

while(n!=0) { d=n; printf(\4、以下程序的输出结果是_______【4】_______。

#include “stdio.h” main()

{ int a[]={1,2,4,3},i; for(i=0;i<4;i++) switch(i%2)

{ case 0:switch(a[i]%2) { case 0:a[i]++;break; case 1:a[i]--; } break; case 1:a[i]=0;}

for(i=0;i<4;i++) printf(\\ printf(\}

5、程序的运行结果是_______【5】_______。

#include “stdio.h” int a=4; int f(int c) {static int a=2; c=c+1;return (a++)+c;} main() { int i,k=0;

for(i=0;i<2;i++) { int a=3;k+=f(a);} k+=a;

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

6、以下程序的输出结果是_______【6】_______。

#include void main()

{ int a[5]={10,12,13,14,15},y,*p=&a[3]; p--; y=*p; printf(“y=%d”,y);}

7、 以下程序的输出结果是_______【7】_______。

#include

void f(int *p,int *q); main()

{ int m=1,n=2,*r=&m; f(r,&n); printf(\void f(int *p,int *q) {p=p+1;*q=*q+1;}

8、程序的运行结果是_______【8】_______。

#include #include

typedef struct{ char name[9];char sex; float score[2]; } STU; STU f(STU a)

{ STU b={ \

int i; strcpy(a.name,b.name) ; a.sex=b.sex;

3