好文档 - 专业文书写作范文服务资料分享网站

大学C语言期末考试练习题(带详解答案) 

天下 分享 时间: 加入收藏 我要投稿 点赞

14.

#include main( ) { char ch;

ch=getchar( ); switch(ch)

{ case ‘A’ : printf(“%c”,’A’);

case ‘B’ : printf(“%c”,’B’); break; default: printf(“%s\\n”,”other”); } }

当从键盘输入字母A时,运行结果为:AB 详见教材p103,switch语句 switch(表达式)

{ case 常量1 :语句1 case 常量2 :语句2 ┇ ┇ ┇ case 常量n :语句n default : 语句n+1 }

其中表达式,常量1,…,常量n都为整型或字符型

case相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到break或switch结束

本题过程:

首先从键盘接收一个字符’A’并将其放在变量ch中。

执行switch语句。Switch后面的条件表达式为ch,因此表达式的值即为字符’A’. 用字符’A’依次与下面的 case中的常量匹配。

与第1个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“%c”,’A’),屏幕上输出A;再往下继续执行printf(“%c”,’B’),屏幕上输出B;再继续执行break, 此时跳出switch语句。

15.

#include main( )

{ int a=1,b=0; scanf(“%d”,&a);

switch(a)

{ case 1: b=1;break; case 2: b=2;break; default : b=10;}

printf(\; }

若键盘输入5,运行结果为:10 本题过程:

首先用scanf函数为变量a赋值为5。

执行switch语句。switch后面的条件表达式为a,因此表达式的值即为5. 用5依次与下面 case中的常量匹配。没有找到匹配的常量,因此两个case后的语句都不执行。执行default后面的语句b=10;将10赋给变量b。

输出变量b,结果为10 16.

#include main()_

{ char grade=’C’; switch(grade) {

case ‘A’: printf(“90-100\\n”);

case ‘B’: printf(“80-90\\n”);

case ‘C’: printf(“70-80\\n”);

case ‘D’: printf(“60-70\\n”); break; case ‘E’: printf(“<60\\n”); default : printf(“error!\\n”);

} }

运行结果为: 70-80 60-70

本题过程:

首先从键盘接收一个字符’C’并将其放在变量grade中。 执行switch语句。switch后面的条件表达式为grade,因此表达式的值即为字符’C’. 用字符’C’依次与下面的 case中的常量匹配。

与第3个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“70-80\\n”);,屏幕上输出70-80,并换行;再往下继续执行printf(“60-70\\n”),屏幕上输出60-70,并换行;再继续执行break, 此时跳出switch语句。 17.

#include main() { int y=9;

for(;y>0;y- -)

if(y%3==0)

{ printf(%d”,- -y); }

}

运行结果为: 852

详见教材p53,自增自减符号

此题 表达式1被省略,表达式2(循环条件)为y>0,表达式3为y-- 初值y为9,循环条件(即表达式2)y>0成立,进入循环体

第1次循环 执行if语句。9%3==0,if语句的条件表达式成立,执行printf(%d”,- -y),即y先自减1变为8,然后在输出,因此屏幕上输出8

转向表达式3,执行y--, y=y-1=8-1=7。循环条件y>0成立,进入第2次循环

第2次循环 执行if语句。7%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)

转向表达式3,执行y--, y=y-1=7-1=6。循环条件y>0成立,进入第3次循环

第3次循环 执行if语句。6%3==0,if语句的条件表达式成立,执行printf(%d”,- -y),即y先自减1变为5,然后在输出,因此屏幕上输出5

转向表达式3,执行y--, y=y-1=5-1=4。循环条件y>0成立,进入第4次循环

第4次循环 执行if语句。4%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)

转向表达式3,执行y--, y=4-1=3。循环条件y>0成立,进入第5次循环

第5次循环 执行if语句。3%3==0,if语句的条件表达式成立,执行printf(%d”,- -y),即y先自减1变为2,然后在输出,因此屏幕上输出2

转向表达式3,执行y--, y=y-1=2-1=1。循环条件y>0成立,进入第5次循环 第6次循环 执行if语句。1%3不为0,if语句的条件表达式不成立,不执行printf(%d”,- -y)

转向表达式3,执行y--, y=1-1=0。循环条件y>0不成立,循环结束。 18.

#include main()

{ int i,sum=0; i=1;

do{ sum=sum+i; i++; }while(i<=10); printf(“%d”,sum); }

运行结果为: 55 19.

#include #define N 4 main() { int i;

int x1=1,x2=2; printf(\

for(i=1;i<=N;i++)

{ printf(\if(i%2==0)

printf(\x1=x1+x2; x2=x2+x1; } }

运行结果为: 1 2 3 5 8 13 21 34

此题 首先为整型变量赋初值x1=1,x2=2

表达式1为i=1,表达式2(循环条件)为i<=N即i<=4,表达式3为i++ 循环变量初值i为1,循环条件(即表达式2)i<=4成立,进入第1次循环

第1次循环 执行printf(\因此屏幕上输出1 2

执行if语句。1%2不为0,if语句的条件表达式不成立,不执行printf(\执行x1=x1+x2=1+2=3;此时x1中的值已变为3 执行x2=x2+x1=2+3=5。

转向表达式3,执行i++, i为2。循环条件i<=4成立,进入第2次循环 第2次循环 执行printf(\因此屏幕上输出3 5

执行if语句。2%2==0,if语句的条件表达式成立,执行printf(\换行 执行x1=x1+x2=3+5=8;此时x1中的值已变为8 执行x2=x2+x1=5+8=13。

转向表达式3,执行i++, i为3。循环条件i<=4成立,进入第3次循环 第3次循环 执行printf(\因此屏幕上输出8 13

执行if语句。3%2不为0,if语句的条件表达式不成立,不执行printf(\执行x1=x1+x2=8+13=21;此时x1中的值已变为21

执行x2=x2+x1=21+13=34。

转向表达式3,执行i++, i为4。循环条件i<=4成立,进入第4次循环 第2次循环 执行printf(\因此屏幕上输出21 34

执行if语句。4%2==0,if语句的条件表达式成立,执行printf(\换行 执行x1=x1+x2=21+34=55;此时x1中的值已变为55 执行x2=x2+x1=34+55=89。

转向表达式3,执行i++, i为5。循环条件i<=4不成立,结束循环 20

#include main( )

{ int x, y;

for(x=30, y=0; x>=10, y<10; x--, y++) x/=2, y+=2;

printf(“x=%d,y=%d\\n”,x,y); }

运行结果为: x=0,y=12 21.

#include #define N 4 main( ) { int i,j;

for(i=1;i<=N;i++) { for(j=1;j

运行结果为:

* *

* *

详见教材P41符号常量

用宏处理指令定义符号常量N为4,在编译过程中,遇到N即视为整数4。

外层for循环,表达式1为i=1,表达式2(循环条件)为i<=N,表达式3为 i++ 内层for循环,表达式1为j=1,表达式2(循环条件)为j

大学C语言期末考试练习题(带详解答案) 

14.#includemain(){charch;ch=getchar();switch(ch){case‘A’:printf(“%c”,’A’);case‘B’:printf(“%c”,’B’);break;
推荐度:
点击下载文档文档为doc格式
8x8516pjq775cln2zb9f
领取福利

微信扫码领取福利

微信扫码分享