单选题
1 .在C语言中,下列类型属于构造类型的是(D )
A整型B .字符型C .实型D .数组类型
2.下列字符串不是标识符的是( D )
A.sum
B. Average
C. Day_night
D. M.D.JOHN
3.在C语言中,回车换行符是(A )
A. n
B. t
C. v
D. b
4.在C语言中,语句和数据定义是用(C )作为结束标记的A句号B .逗号C .分号D .括号
5. 设有如下定义:
int x=10,y=5,z;
则语句printf( “%dn”,z= (x+=y,x/y));
的输出结果是( C )
A.0 B.1 C.3 D.4
6. 10 .以下程序的输出结果是( B )
main( ) {char c1= '8',c2= '2';
printf( “%c,%c,%d,%d”n ,c1,c2,c1 -c2,c1+c2);
}
精选文库
A.因输出格式不合法,输出出错信息
B.8,2,6,106 C . 8,2,6,10 D . 825,9
7.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是
(A)mai n() {int x;
seanf( “ %d,&x);
if(x++>5) printf( “%dn ,x);
else prints “%dn ,x --);
A. 7 禾R 5 B . 7 禾R 4 C . 6 禾R 4 8.表达式(int)2.1416 的值时(A )
A. 2
B. 2.1
C. 0
D. 3
9.下列运算符优先级最高的是(B )
A. >
B. +
C. &&
D. !=
10.C语言容许函数值类型缺省定义,此时该函数值隐含的类型时(B )
A. float 型
B. Int 型
C. Long 型
D. Double 型
11、C程序的基本构成单位是(C)
A子程序B、过程C、函数D、文件
12、C语言中要求操作数都为整型数据的算术符是( C )
精选文库
A / B、! C、%D、=
13、若int x=1 ,y=1 ;则表达式(!x||y--)的值是(B )。
A 0 B、1 C、2 D、一 1
14、能正确表示逻辑关系:a> 10或a<0的C语言表达式(D )
A a>=10 or 3<=0
B 、3>=0国<=10
C a>=10 && a<=0 D、a>=10||av=0 15、double x , y;表达式x=1, y=x+3/2 的值是(C )。
A 1 B、2 C、2.0 D、2.5
16、运行C源程序的命令是(D)
A ALT+F5 B、ALT+F9
C CTRL+F5
D CTRL+F9
17、运行完C程序后,查看C程序运行结果的命令是(A )
A ALT+F5 B、ALT+F9
C CTRL+F5
D CTRL+F9 18.若有程序段:int i=2,j;
j=i++;
printf( “ %d,%d ++i,j);
该程序段的输出结果是:(D)
A 3, 2 B、4, 3 C、3, 3 D、4, 2
19 设int a=12; 表达式a+=a-=a*=a 的值是(C )。
A 12
B 144
C 0
D 132
精选文库
20、若给定条件表达式(M )?(a++):(a--),则其中表达式M 和(D )等价。
A M==0
B M=1
C M!=1
D M!=0
21、在C 语言中,if 语句后的一对圆括号中,用以决定分支流程的表达式为 (D )O
A 只能是逻辑表达式
B 只能是关系表达式
C 只能是逻辑表达式或关系表达式
D 可以是任意表达式
22、下列选项中,(A )给变量赋初值是错误的。
A int a=b=3;
B int a,b,c=5;
C int a=3,b,c
二a; D float f=3.56;
23、在C 语言中,一个字符变量在内存中占用(
A )个字节。
24、int a=12,b=13,c; c=(a
25、设有 int i ;则表达式 i=1,++i,++i||++i,i A.1
B.2
C. 3
D. 4
30以下程序段中与语句k=a>b?(b>c?1:0):0 ;功能等价的是(A )
A) if((a>b)&&(b>c)) k=1;
则c 的值是(A )。
的值为(C )
精选文库
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;
31、算法具有五个特性,以下选项中不属于算法特性的是(B)
(A)有穷性(B)简洁性(C)可行性(D)确定性
32以下选项中可作为C语言合法常量的是(A)
(A)-80. (B)-080 (C)-8e1.0 (D)-80.0e
33、以下叙述中正确的是(C)
(A)用C语言实现的算法必须要有输入和输出操作(B)用C语言实现的算法可以没有输出但必须要有输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出
33、以下选项中,不能作为合法常量的是(B)
(A)1.234e04 (B)1.234e0.4 (C)1.234e+4 (D)1.234e0 34、有以下程序
精选文库
mai n() int i=1,j=2,k=3;
if(i++==1 &&(++j==3||k++==3)) prin tf("%d %d %dn ",i,j,k);
程序运行后的输出结果是 (D )
(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 3
35、判断变量ch 中的字符是否为数字字符,正确表达式是
A ) ch>=0&&chv=9
B )' O ' <
二chv 二'9' C )ch>=' 0' ||ch<= ' 9' D ) ch>=' O ' &&chv= 9'
36、若执行以下程序时从键盘上输入
9,则输出结果是_B.
A )11
B )10
C )9
D )
main ()
if(n++v1O) prin tf("%d n" else printf("%dn" ,n--);
37、若 w=1, x=2, y=3,z=4;则条件表达式 w>x?w yvz?y : z 的结果是 __B
{ intn ; scanf("%d",
&n);
,n );
精选文库
A) 4 B) 3 C) 2 D) 1
38、以下非法的赋值语句是(C )
A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;
39、设a和b均为double型变量,且a=5.5、b=2.5 , 则表达式(int)a+b/b的值
是(D)
A) 6.500000 B)6 C) 5.500000 D) 6.000000
40、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车〉,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)
A) sea nf( “ ---”,&i,&j,&k);
B) scanf( “%d %d %d,&i,&j,&k);
C) scanf( “%d,%d,%”,&i,&j,&k);
D) scanf( “i=%d,j=%d,k=%d” ,&i,&j,&k);
41、若有以下程序:
mai n()
{ int k=2,i=2,m;
m=(k+=i*=k);printf( “%d,%dn ,m,i);
执行后的输出结果是(C)
A) 8,6 B) 8,3 C) 6,4 D) 7,4
精选文库
printf(
“x=%f,i=%d ” ,x,i);
已有定义:int x=3,y=4,z=5 ;,则表达式!(x+y)+z-1 && y+z/2 的值是(D)
A) 6 B) 0 C) 2D) 1
43以下选项中,与k
二n++完全等价的表达式是(A)
A) k
二n,n 二n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
39、若有说明:int i,j=7, *p=&i;,
则与i=j;等价的语句是B
A)i= *P; B)* P
二* &J; C)i=&j; D)i=* *p;
40、若有以下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},* p=a;
则数值为6的表达式是C
A)* p+6 B)* (p+6) C)* p+=5 D)p+5
填空题
1.
C 语言是通过 库函数 来进行输入和输出的。
2.
C 语言的数据类型有四大类,他们是 基本类型、构造类型、指针类型和
空类型。
4 .下面程序的运行结果是 3.600000,3 mai n() {float x; int i;
x=3.6;i=(i nt)x;
42、
精选文库
5.数组名定义规则和变量名相同,遵守标识符命名规则。
6、main() {char c1,c2,c3;
c2=' c';c1=c2-1;
c3=c2+1;
printf( “%c,%d,%cn ,c1,c2,c3);
程序的运行结果是:b,99,d
7、main() {int a=5,b=6,c;
c=a;
if(a>b) c=1;
else if(a= =b) c=0;
else c= — 1 ;
printf( “c=%dn ,c);
程序的运行结果是:-1
精选文库
printf(
“x=%df' ,x);
x=1;
11.设x 的值为15, n 的值为2,则表达式x%=(n+=3)运算后,x 的值为0 。
12.设int a=7,b=9,t; 执行完表达式t=(a>b)?a:b 后,t 的值是9。
14 .求100?200间的全部素数。
# in elude vstdio.h> mai n() { int m,k,i ,n=0;
for(m=101;mv=200;m+=2) { if(n
二=0) prin tf(" n");
k=sqrt(m);
for(i= 2 ;i<=k;i++) if(m%i==0) break ;
if(i== k )—
{ printf("%d ",m)
; n++;}
15、main() { int x,y=1,z=10;
if(y!=0) x=5;
if(zvO) if(y>0) x=3;
else x=5;
printf( “x=%dn ,x);
if(z=yvO) x=3;
else if(y==O) x=5;
else x=7;
精选文库printf( “x=%df' ,x);
printf( “z=%dn ,z);
写出程序的运行结果:x=5 x=1 x=7 z=0
16、百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小
马驮1担,问大、中、小马各多少匹?
mai n() { int hb,hm,hl, n=0;
for(hb=0;hbv=100;hb+二 3 )_
for(hm=0;hmv=100-hb;hm+二2丄{ hl=100-hb-hm_;
精选文库
prin tf("%d ",a[i]);
if(hb/3+hm/2+2* hl ==100) { n++;
prin tf("hb=%d,hm=%d,hl=%d n",hb/3,hm/2,2*hl);
prin tf(" n=%dn", n);
17、写出程序运行结果,并简述功能(运行结果5分,功能描述3分,共8分) #i nclude
int a[10]={2,4,6,8,10,1,3,5,7,9};
for(i=0;i<=4;i++) t=a[i];a[i]=a[9-i];a[9-i]=t;
for(i=0;i<=9;i++)
9 7 5 3 1 10 8 6 4 2
功能描述:
将整型数组a以逆序形式显示出来
18、有以下语句段int n1 = 10, n2=20;
printf( “ n1=%dnn2=%d ,n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10 n2=20
19、有以下程序mai n() { int n=0, m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf( “%dn ,x);
}执行后输出结果是-4_ o
21、?以下程序运行后的输出结果是
mai n() int a,b,c;
a=10;b=20;c=(a%bv1) ||(a/b>1);
prin tf("%d %d %d n",a,b,c);
22、任意输入三条边(a,b,c)后,若能构成三角形且为等腰、等边和直角,则分别输
出DY DB和ZJ,若不能构成三角形则输出NO mai n() { float a,b,c,a2,b2,c2 sca nf("%f%f%f%, &a,&b,&c); prin tf("%5.1f,%5.1f,%5.1f",a,b,c);
if(a+b>c&&b+c>a&&a+c>b) if(a==b || b==c || a==c)printf("DY");
if(a==b && b==c)pri ntf("DB");
a2=a*a;b2=b*b;c2=c*c;
if((a2+b2==c2) || (a2+c2==b2) || (b2+c2==a2)) prin tf("ZJ"): printf("n");
else prin tf("NO n");
23、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 _x=2.
if (a
else if (avc) if (bvd) x=2;
else x=3;
else x=6;
else x=7;
printf( “x=%d ,x);
24、以下程序运行后的输出结果是20,0 。
mai n()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf( “%d,%d n ,x,y);
、程序题
1、在购买某物品时,若所花的钱x在下述范围内,所付钱y按对应折扣支付:
xx<1000 0.9x 1000 < XV2000 0.8x 2000 < x<3000 0.7x x. > 3000 y=
2、编一程序根据上网时间计算上网费用,计算方法如下:
费用=
30元基数<10小时
每小时3元10?50 每小时2.5元 > 50小时
同时为了鼓励多上网,每月收费最多不超过150元。
3、已知输入某课程的百分制成绩mark,要求显示对应五级制的评定,评定条件如下:
等级=
优mark》90 良80< markv 90
中70< markv 80
及格60< markv 70
不及格mark v 60
精选文库第一题答案:
#i nclude vstdio.h>
void mai n()
float y;
int x;
sca nf("%d", &x);
if(xv1000) y=x;
if(x>=1000 && xv2000) y=0.9*x;
if(x>=2000 && xv3000) y=0.8*x;
if(x>=3000) y=0.7*x;
第二题答案:
#i nclude vstdio.h>
void mai n()
float y;
int x;
精选文库sea nf("%d", &x);
if(xv10) y=30;
if(x>=10 && xv50) y=3*x;
if(x>=50) y=2.5*x;
if(y>150) y=150;
prin tf("%f",y);
第三题答案:
#i nclude vstdio.h> void mai n() int mark;
sea nf("%d",&mark);
if(mark>=90) printf(" 优
");
精选文库else if(mark>=80) printf(" 良");
else if(mark>=70) printf(" 中");
else if(mark>=60) printf(”
及格");
else printf(" 不及格");