文章教程

全国计算机等级考试二级C语言4.3综合自测

8/22/2020 10:24:52 PM 人评论 次浏览

4.3 综合自测

一、选择题

1.以下选项中不是C语句的是(  )。

A.{inti;i++;printf("%d\n",i);}    B.;

C.a=5,c=10    D.{ ; }

2.执行以下程序时输入1234567,程序的运行结果为(  )。

#include <stdio.h>

main()

{ int x,y;

scanf("% 2d% 2ld",&x,&y);

printf("% d\n",x+y);

A.17    B.46    C.15    D.9

3.若有定义chara;intb;floatc;doubled;,则表达式a*b+c-d的结果为(  )型。

A.double    B.int    C.float    D.char

4.若有定义inta,b;,则用语句scanf("%d%d",&a,&b);输入a,b的值时,不能作为输入数据分隔符的是(  )。

A.,    B.空格    C.回车    D.Tab键

5.运行下面的程序,如果从键盘上输入:

ab<回车>

c <回车>

def<回车>

则输出结果为(  )。

#define N 6

#include <stdio.h>

main()

{ char c[N];

int i=0;

for( ;i<N;c[i] =getchar(),i++);

for( i=0;i<N;i++) putchar(c[i]);printf("\n");

A.a    B.a    C.ab    D.abcdef

b    b    c

c    c    d

d    d

e

f

6.以下程序的输出结果是(  )。

#include <stdio.h>

main()

{ printf("% f",2.5+1*7% 2/4);

A.2.500000    B.2.750000    C.3.375000    D.3.000000

7.根据定义和数据的输入方式,输入语句的正确形式是(  )。

已有定义:floatf1,f2;

数据的输入方式:4.52

3.5

A.scanf("%f,%f",&f1,&f2);    B.scanf("%f%f",&f1,&f2);

C.scanf("%3.2f%2.1f",&f1,&f2);    D.scanf("%3.2f,%2.1f",&f1,&f2);

8.以下程序不用第3个变量,实现将两个数进行对调的操作,请填空。

#include <stdio.h>

main()

{ int a,b;

scanf("% d% d",&a,&b);

printf("a=% d b=% d",a,b);

a=a+b;b=a-b;a=______;

printf("a=% d b=% d\n",a,b);

A.a+b    B.a-b    C.b*a    D.a/b

二、操作题

下列给定程序中,函数fun()的功能是进行数字字符转换。若形参ch中是数字字符‘0’ ~‘9’,则将‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,…,‘9’转换成‘0’;若是其他字符则保持不变。并将转换后的结果作为函数值返回。

请在标号处填入正确的内容,使程序得出正确的结果。

注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构。

试题程序

#include <stdio.h>

【1】fun(char ch)

{ if(ch> = '0'&&【2】)

return '9'-(ch-【3】)

return ch;

main()

{ char c1,c2;

printf("\nThe result:\n");

c1= '2';c2 = fun(c1);

printf("c1=% cc2=% c\n",c1,c2);

c1= '8';c2 = fun(c1);17

printf("c1=% cc2 =% c\n",c1,c2);c1= 'a';c2 = fun(c1);

printf("c1=% cc2=% c\n",c1,c2);

教程类别