C语言基础练习题含答案

A.0 B.1 C.2 D.3

28.运行以下程序后,如从键盘上输入china#,则输出为(C)。

#include ”stdio.h” main() {

int v1=0,v2=0; char ch;

while ( (ch=getchar()) != ’# ’)

switch (ch) { case ’a’:

case ’h’: default: v1++; case ’o’: v2++; }

printf(”%d,%d\\n”, v1,v2); }

A.2,0 B.5,0 D.2,5

29.有以下程序,若输入为字符s,则程序运行结果为(#include ”stdio.h” main() {

char ch;

ch=getchar(); switch (ch)

{ case ’a’: printf(”a=%c\\n”,ch); default: printf(”end!\\n”);

case ’b’: printf(”b=%c\\n”,ch); case ’c’: printf(”c=%c\\n”,ch); }

C.A)。5,5

}

A.end! B.end! C.有语法错误 D.a=s

b=s

end!

c=s

30.有以下程序,程序运行后的输出结果是(A)。

#include ”stdio.h” main() {

int a=15, b=21, m=0; switch (a%3)

{ case 0: m++; break; case 1: m++; switch (b%2) { default: m++;

case 0: m++; break;

} }

printf(”%d\\n”,m); }

A.1 B.2 D.4 2.2 填空题

1. 若从键盘输入58,则输出结果是___585858_____。

#include ”stdio.h” main() {

int a;

C.3 scanf(”%d”, &a);

if (a>50) printf(”%d”, a); if (a>40) printf(”%d”,a); if (a>30) printf(”%d”,a); }

2. 设int x=9,y=8;表达式x==y+1的结果是__1______。

3. 定义int x,y;执行y=(x=1,++x,x+2);后, y的值是__4______。 4. 定义int x=10,y,z; 执行y=z=x; x=y==z;后, x的结果是 1 。 5. 设int a=1,b=2,c,d,e; 执行

c=(-a++)+(++b); d=(b--)+(++a)-a; e=(a/(++b))-(a/(--a));

请问a,b,c,d,e的结果是:2 3 2 3 0。 6. 设int a=2,b=3,c,d,e,f; 执行

c=(a++>= --b); d=(a==++b); e=(a--!=b); f=(++a>b--);

请问a,b,c,d,e,f的结果是:_3 2 1 1 0 0_______。 7. 以下程序的运行结果是__2 0 0______。 #include ”stdio.h” main() {

int a,b,c,s,w,t;

s=w=t=0;

a= -1; b=3; c=3; if (c>0) s=a+b; if (a<=0) { if (b>0)

if (c<=0) w=a-b;

}

else if (c>0) w=a-b;

else t=c;

printf(”%d %d %d”, s,w,t);

}

8. 以下程序的运行结果是__100______。 #include ”stdio.h” main() {

int a,b,c,d,e; a=c=1; b=20; d=100;

if (!a) d=d++; else if (!b)

if (d) d= --d;

else d= d--;

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

9. 以下程序的运行结果是_6 250 0 0______。

#include ”stdio.h” main() {

int a, b= 250, c; if ((c=b)<0) a=4; else if (b=0) a=5; else a=6;

printf(”\\t%d\\t%d\\n”,a,c); if (c=(b==0))

a=5;

printf(”\\t%d\\t%d\\n”,a,c);

5 1 (换行)if (a=c=b) a=4;

printf(”\\t%d\\t%d\\n”,a,c);

}

10.下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在【】内填空。

x y 2

int x,y;

scanf(”%d”, &x); if (【1】) y=x*(x+2); else if (【2】) y=1/x; else if (x<=-1) y=x-1; else 【3】;

if (y!= -1) printf(”%d”,y); else printf(”error”); }

11.以下程序的功能是计算一元二次方程ax2+bx+c=0的根。请在【】内填入正确内容。

#include ”stdio.h” #include ”math.h” main() {

float a,b,c,t,disc,w,term1,term2; printf(”enter a,b,c:”);

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4