C考试系统题库含答案程序题 下载本文

三、 程序填空题

第一章 C语言基础知识

(C语言概述、算法、数据类型 运算符 表达式、位运算)

1以下程序不用第三个变量实现两个数对调的操作。 #includ “stdio.h” main() {

int a,b;

scanf(\ a=;(三个字符) b=;(三个字符) a= a-b;

printf(\}

2、选择程序的运行结果 。

main ( )

{ int x=1, y=2, z, a, b, c, d; z = ++x||++y;

printf(\

printf(\输出结果(三个字符) */ a=-1; b=-2; c=++a&&b++;

printf(\输出结果 (三个字符)*/ }

3以下程序的结果为_______ main() {

unsigned int a=3, b=10;

printf(\输出结果<14> */ printf(\输出结果<0> */ }

4 若x=3,y=z=4,则下列表达式的值是。 (1) (z>=y>=x)? 1:0

/*值为<0> */

(2) z>=y&&y>=x

1

/*值为<1> */

5已知float x=4.3,int y;执行语句y=(int)x后,x为型(填写小写英文字母),且y=<4>(填写阿拉伯数字);

6表达式’c’&&’d’的值为<1>(填写阿拉伯数字),’c’&&’d’||!(3+4)的值为<1>(填写阿拉伯数字)。

7若x为int类型,则与逻辑表达式“x”等价的表达式是, 与逻辑表达式“!x”等价的表达式是

8 表示“整数x的值大于5”时逻辑值为“真”的表达式是5>,逻辑值为“假”的表达式是

9已知字母A的ASCII码为十进制数65,且设ch为字符型变量,则表达式ch=‘A’-‘4’+‘9’的值为<’F’>(一个字符常量);若定义:char c=‘\\72’;则变量c中包含的字符个数为<1>(数字)。 10、C语言所提供的基本数据类型的整型类型包括:<短整型>、整型、<长整型>。(按每种类型所占字节数,从小到大排列)

第二章 C语言程序结构

(顺序程序设计、选择结构程序设计、循环控制)

程序填空题

F1. 以下程序可判断输入的一个整数是否能被3或7整除,若能整除,输出“yes”,否则输出“no”。请填空。 #include “stdio.h” void main() { int k;

printf(“Enter a int number:”); scanf(“%d”,<&k>); if() printf(“yes\\n”); else

printf(“no\\n”); }

2

N2.下面程序的功能是计算1-3+5-7+ ?? -99+101的值。 main() {

int i,t=1,s=0;

for(i=1;i<=101;i+=2) {

t=; s=s+t; t=<-t>; }

printf(\; }

F3.下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main()

{ float x,amax,amin; scanf(\; amax=x; amin=x;

while(=0>)

{ if(x>amax) amax=x; if() amin=x; scanf(\; }

printf(\; }

F4.下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5。 #include “stdio.h” void main() {

int i,s,k,count=0;

for(i=100;i<=1000;i++) {

s=0; k=i; while(k) {

s=s+k; k=; }

if()count++; }

printf(“%d”,count);

3

}

F5下列程序功能是求数组中主对角线元素之和,请补充完成

main()

{ int a[3][3],i,j,s=0; for( i=0;i<3;i++ ) for( j=0;j<3;j++)

scanf(\&a[i][j]>);

for(i=0;i<3;i++) for( j=0;j<3;j++)

if()

s+=a[i][j]; printf(\}

R6. 下面程序的功能是:输入一个字符,如果它是一个大写字母,则把它变成小写字母,如果它是一个小写字母,则把它变成大写字母,其它字符不变,请将程序补充完整:

main()

{ char ch; scanf(“%c”,&ch); if (ch>=’A’ && ch <=’Z’) ch=ch+32; else if (=?a? && ch <=?z?>) < ch=ch-32>; printf(“%c”,ch); }

R7. 请将用户输入的x,y,z三个整数按照从小到大的顺序排列 main() {

int x,y,z,t;

scanf(\if(x>y)

{ t=y;y=x;x=t;} if(z>)

{t=z;z=x;x=t;} if(z>)

4

{t=y;y=z;z=t;}

printf(\}

F8. 以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用i统计大于零的个数,用变量j统计小于零的整数。请填空。 void main() { int n,i,j; i=0;j=0;

printf(“Enter INT numbers,with 0 to end\\n”); scanf(“%d”,&n);

while() { if (n>0) i=i++; if (n<0) j=j++;

; }

printf(“i=M j=M\\n”,i,j); }

F9. 以下程序用“辗转相除法”来求出两个正整数的最大公约数。请填空。若两个数分别放在m和n中,求最大公约数的算法如下: (1) 将两数中最大的那个放在m中,小的放在n中。 (2) 求出m被n除后的余数r。

(3) 若余数为0则执行步骤(7);否则执行步骤(4)。 (4) 把除数作为新的被除数;把余数作为新的除数。 (5) 求出新的余数r。 (6) 重复步骤(3)到(5)。

(7) 输出n,n即为最大公约数。 void main() { int r,m,n;

printf(“Enter m,n:”);

scanf(“%d%d”,<&m,&n>); printf(“m=%d n=%d\\n”,m,n); if (m

{r=m;m=n;n=r;} r=; while(r!=0)

{m=n,n=r,r=m;}

printf(“H.C.F=%d\\n,n); }

R10. 以下程序可判断输入的一个字符是否为小写字母,如果是,则转换为对应的大写字母并输出;否则,就原样输出。请填空。 #include “stdio.h” void main()

5