国二c语言笔试题库(专升本会出40分的题) 下载本文

D) 当输入数据时,必须指明变量地址,例如:scanf(“%f”, &f); 28.设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是( )。 A) 把x和y按从小到大排序 B) 把x和y按从大到小排序 C) 无确定结果 D) 交换x和y中的值 二 填空题

1.下面程序的运行结果是

i:dec=-4,oct=17774,hex=ffffc,unsigned=65532 。 main() {

short i; i= -4;

printf(“\\ni: dec=%d, oct=%o, hex=%x, unsigned=%u\\n”, i, i, i, i); }

2.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 5.0,4,c=3 。 int b,c; float a;

scanf(\,%d,c=%d\,&a,&b,&c); 3.下列程序的输出结果是16.00,请填空。 main()

{ int a=9, b=2;

float x= 6.6 , y=1.1,z; z=a/2+b*x/y+1/2;(1/2=0,a/2=4) printf(\}

4.在printf格式字符中,只能输出一个字符的格式字符是 %c ;用于输出字符串的格式字符是 %s ;以小数形式输出实数的格式字符是 %f ;以标准指数形式输出实数的格式字符是 %e 。 三 编程题

1. 若a=3, b=4, c=5, x=1.2, y=2.4, z= -3.6, u=51274, n=128765, c1=?a?, c2=?b?。想得到以下的输出格式和结果,请写出完整的程序(包括定义变量类型和设计输出)。 要求输出的结果如下:

a= <空格>3 <空格><空格> b= <空格> 4<空格><空格> c= <空格>5 x=1.200000, y=2.400000, z= -3.600000

x+y=<空格>3.60<空格><空格> y+z = -1.20<空格><空格>z+x= -2.40 u=<空格>51274<空格><空格>n=<空格><空格><空格>128756 c1= a <空格>or<空格>97(ASCII) c2= B <空格>or<空格>98(ASCII)

2. 输入一个华氏温度,要求输出摄氏温度。公式为

5? c??F?329 输出要有文字说明,取2位小数。

3. 编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

三 编程题 1. 解: main() {

int a=3, b=4, c=5;

long int u=51274, n=128765; float x=1.2, y=2.4, z= -3.6; char c1=?a?, c2=?b?; printf(“\\n”);

printf(“a=- b=- c=-\\n”,a,b,c); printf(“x=%8.6f , y=%8.6f, c=%9.6f\\n”,x,y,z) ;

printf(“x+y=%5.2f y+z=%5.2f z+x=%5.2f\\n”,x+y,y+z,z+x) ; printf(“u=%6ld n=%9ld\\n”,u,n);

printf(“c1=%c or %d(ASCII)\\n”,c1,c1); printf(“c2=%c or %d(ASCII)\\n”,c2,c2); }

2. 解: main() {

float c, f;

printf(“请输入一个华氏温度:\\n”); scanf(“%f”,&f); c=(5.0/9.0)*(f-32);

printf(“摄氏温度为:%.2f\\n”,c) ; }

3. 解:

#include main() {

char c1, c2;

printf(“请输入两个字符给c1和c2:\\n”); c1=getchar(); c2=getchar();

printf(“用putchar函数输出结果为:\\n”) ; putchar(c1); putchar(c2);

printf(“\\n用printf函数输出结果为:\\n”) ; printf(“%c, %c\\n”,c1,c2) ; }

第五章 选择结构程序设计

一 单项选择题

1.逻辑运算符两侧运算对象的数据类型是( )。 A) 只能是0或1

B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据

2.已知x=43, ch='A', y=0;则表达式(x>=y&&ch<'B'&&!y)的值是( )。 A) 0 B) 语法错 C) 1 D) “假” 3.已知 int x=10, y=20, z=30; 以下语句执行后x, y, z的值是( )。 if(x>y)

z=x;x=y;y=z;

A) x=10,y=20,z=30 B) x=20,y=30,z=30 C) x=20,y=30,z=10 D) x=20,y=30,z=20 4.执行下列语句后a的值为( ),b的值为( )。 int a, b, c; a=b=c=1;

++a|| ++b && ++c;

A) 错误 1 B) 2 2 C) 2 1 D) 1 1 5.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( )。

A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2 6.设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后n的值是( )。

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

7.判断char型变量cl是否为小写字母的正确表达式是( )。 A) ‘a’<=cl<=‘z’ B) (cl>=a)&&(cl<=z)

C) (‘a’>=cl)||(‘z’<=cl) D) (cl>=‘a’)&&(cl<=‘z’) 8.以下不正确的if语句形式是( )。 A) if(x>y&&x!=y); B) if(x==y) x+=y;

C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y) D) if(x

int a=5,b=0,c=0;

if(a=b+c) printf(“***\\n”); else printf(“$$$\\n”); }

以上程序( )。

A) 有语法错不能通过编译

B) 可以通过编译但不能通过连接 C) 输出*** D) 输出$$$

10.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )。 if(a

if(c

if(a

if(b

A) 1 B) 2 C) 3 D) 6 11.以下程序的输出结果是( )。 main()

{int a=100,x=10,y=20,ok1=5,ok2=0; if(x

if(y!=10) if(!ok1) a=1; else

if(ok2) a=10; a=-1;

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

A) 1 B) 10 C) -1 D) 值不确定 12.以下程序的输出结果是( )。 main()

{int x=2,y=-1,z=2; if(x

if(y<0) z=0; else z+=1; printf(“%d\\n”,z); }

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

13.为了避免在嵌套的条件语句 if - else 中产生二义性,C语言规定:else子句总是与( )配对。

A) 缩排位置相同的if B) 其之前最近的if C) 其之后最近的if D) 同一行上的

14.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是( )。

A) (exp==0) B) (exp!=0) C) (exp==1) D) (exp!=1)

15.若运行时给变量x输入12,则以下程序的运行结果是( )。 main() {int x,y;

scanf(“%d”,&x);