一、单选题
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,%dn”,c1,c2,c1-c2,c1+c2); } A.因输出格式不合法,输出出错信息 B.8,2,6,106 C.8,2,6,10 D.8,2,5,9 7.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( A ) main( ) {int x; scanf(“%d”,&x);
if(x++>5) printf(“%dn”,x); else printf(“%dn”,x--); } A.7和5 B.7和4 C.6和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 a=0|a=10 && a=10||a
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 )。 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 )个字节。 A 1 B 2 C 3 D 4
24、int a=12,b=13,c; c=(a
25、设有int i;则表达式i=1,++i,++i||++i,i的值为(C ) 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; B) if((a>b)||(b>c)) k=1 else k=0; C)if(ab) k=1; else if(bc) k=1; else k=0;
31、算法具有五个特性,以下选项中不属于算法特性的是(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、有以下程序
B ) ( main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf(\"%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中的字符是否为数字字符,正确表达式是____D___。
A)ch>=0&&ch=’0’||ch=’0’&&ch
36、若执行以下程序时从键盘上输入9,则输出结果是__B_____ A)11 B)10 C)9 D)8 main( )
{ int n; scanf(\"%d\",&n); if(n++
37、若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y
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) scanf(“---”,&i,&j,&k); B) scanf(“%d %d %d”,&i,&j,&k); C) scanf(“%d,%d,%d”,&i,&j,&k); D) scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
41、若有以下程序: main() { 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
42、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是(D) A) 6 B) 0 C) 2 D) 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 main( ) {float x; int i; x=3.6;i=(int)x; printf(“x=%f,i=%d”,x,i); } 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 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间的全部素数。 # include main() { int m,k,i,n=0; for(m=101;m
15、main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%dt”,x); x=1; if(z0) x=3; else x=5; printf(“x=%dn”,x); if(z=y
16、百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹? main( ) { int hb,hm,hl,n=0; for(hb=0;hb
17、写出程序运行结果,并简述功能(运行结果5分,功能描述3分,共8分) #include main() { int i,t; int a[10]={2,4,6,8,10,1,3,5,7,9}; for(i=0;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、有以下程序 main( ) { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%dn”,x); } 执行后输出结果是 -4 。
21、.以下程序运行后的输出结果是____ main() { int a,b,c; a=10;b=20;c=(a%b1); printf(\"%d %d %dn\",a,b,c); } 答案:10 20 0
22、任意输入三条边(a,b,c)后,若能构成三角形且为等腰、等边和直角,则分别输出DY、DB和ZJ,若不能构成三角形则输出NO。 main() { float a,b,c,a2,b2,c2 scanf(\"%f%f%f%,&a,&b,&c); printf(\"%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)printf(\"DB\"); a2=a*a;b2=b*b;c2=c*c; if((a2+b2==c2) || (a2+c2==b2) || (b2+c2==a2)) printf(\"ZJ\"); printf(\"n\"); } else printf(\"NOn\"); }
23、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是___x=2______ if (a
24、以下程序运行后的输出结果是 20,0 。 main() { 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按对应折扣支付:
x x
2、编一程序根据上网时间计算上网费用,计算方法如下:
费用= 30元基数
同时为了鼓励多上网,每月收费最多不超过150元。
3、已知输入某课程的百分制成绩mark,要求显示对应五级制的评定,评定条件如下:
等级= 优 mark≥90 良 80≤mark<90 中 70≤mark<80 及格 60≤mark<70 不及格 mark<60 第一题答案: #include void main() { float y; int x; scanf(\"%d\",&x); if(x=1000 && x=2000 && x=3000) y=0.7*x; printf(\"%f\",y); } 第二题答案: #include void main() { float y; int x; scanf(\"%d\",&x); if(x=10 && x=50) y=2.5*x; if(y>150) y=150; printf(\"%f\",y); } 第三题答案: #include void main() { int mark; scanf(\"%d\",&mark); if(mark>=90) printf(\"优\"); else if(mark>=80) printf(\"良\"); else if(mark>=70) printf(\"中\"); else if(mark>=60) printf(\"及格\"); else printf(\"不及格\"); }