标题 | 计算机c语言试题及答案 |
范文 | 计算机c语言试题及答案 1. #include "stdio.h" main() {char c; c=get); while(c!='?') {putc);c=get); } } 如果从键盘输入abcde?fgh(回车) 运行结果为:abcde 2. #include main() { char c; while((c=get))!=’$’) { if(‘A’<=c&&c<=‘Z’)putc); else if(‘a’<=c&&c<=‘z’)putc-32);} } 当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD 3. #include main() { int x, y =0; for(x=1;x<=10;x++) { if(y>=10) break; y=y+x; } printf(“%d %d”,y,x); } 运行结果为:10 5 详见教材p120for语句 详见教材p126~128break,continue语句 for( 表达式1;表达式2;表达式3) { } (1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体,然后执行 (3). 若为假,则结束循环,转到(5) (3) 求解表达式3 (4) 转回上面 (2)继续执行 (5) 循环结束,执行for语句下面的一个语句 break ,跳出循环体;continue,结束本次循环(第i次循环),继续执行下一次循环(第i+1次循环) 此题 表达式1为x=1,表达式2(循环条件)为x<=10,表达式3为x++ 初值x为1,y为0,循环条件(即表达式2)x<=10成立,进入循环体 第1次循环 执行if语句。0小于10,if语句的条件表达式不成立,不执行break; 执行y=y+x; y=0+1=1 转向表达式3,执行x++,x=x+1=1+1=2。循环条件x<=10成立,进入第2次循环 第2次循环 执行if语句。1小于10,if语句的条件表达式不成立,不执行break; 执行y=y+x; y=1+2=3 转向表达式3,执行x++,x=x+1=2+1=3。循环条件x<=10成立,进入第3次循环 第3次循环 执行if语句。3小于10,if语句的条件表达式不成立,不执行break; 执行y=y+x; y=3+3=6 转向表达式3,执行x++,x=x+1=3+1=4。循环条件x<=10成立,进入第4次循环 第4次循环 执行if语句。6小于10,if语句的条件表达式不成立,不执行break; 执行y=y+x; y=6+4=10 转向表达式3,执行x++,x=x+1=4+1=5。循环条件x<=10成立,进入第5次循环 第5次循环 执行if语句。10等于10,if语句的条件表达式成立,执行break,跳出循环。 从break跳出至for语句的下一条语句。执行printf(“%d %d”,y,x); 输出当前的y与x.结果为10 5 4. #include main( ) {char ch; ch=get ); switch(ch) {case‘A’ : printf(“%c”,’A’); case‘B’ : printf(“%c”,’B’); break; default: printf(“%s”,”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语句。 5. #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("%d ", b); } 若键盘输入5,运行结果为:10 本题过程: 首先用scanf函数为变量a赋值为5。 执行switch语句。switch后面的条件表达式为a,因此表达式的值即为5. 用5依次与下面 case中的常量匹配。没有找到匹配的常量,因此两个case后的语句都不执行。执行default后面的语句b=10;将10赋给变量b。 输出变量b,结果为10 6. #include main()_ { char grade=’C’; switch(grade) { case ‘A’: printf(“90-100”); case ‘B’: printf(“80-90”); case ‘C’: printf(“70-80”); case ‘D’: printf(“60-70”); break; case ‘E’: printf(“<60”); default : printf(“error!”); } } 运行结果为: 70-80 60-70 本题过程: 首先从键盘接收一个字符’C’并将其放在变量grade中。 执行switch语句。switch后面的条件表达式为grade,因此表达式的值即为字符’C’. 用字符’C’依次与下面的 case中的常量匹配。 与第3个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“70-80”);,屏幕上输出70-80,并换行;再往下继续执行printf(“60-70”),屏幕上输出60-70,并换行;再继续执行break, 此时跳出switch语句。 7. #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不成立,循环结束。 8. #include main() { int i,sum=0;i=1; do{ sum=sum+i; i++; }while(i<=10); printf(“%d”,sum); } 运行结果为: 55 9. #include #define N 4 main() { int i; int x1=1,x2=2; printf(""); for(i=1;i<=N;i++) { printf("%4d%4d",x1,x2); if(i%2==0) printf(""); x1=x1+x2; x2=x2+x1; } } 运行结果为: 1 2 3 5 8 132134 此题 首先为整型变量赋初值x1=1,x2=2 表达式1为i=1,表达式2(循环条件)为i<=N即i<=4,表达式3为i++ 循环变量初值i为1,循环条件(即表达式2)i<=4成立,进入第1次循环 第1次循环 执行printf("%4d%4d",x1,x2);因此屏幕上输出12 执行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("%4d%4d",x1,x2);因此屏幕上输出35 执行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("%4d%4d",x1,x2);因此屏幕上输出813 执行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("%4d%4d",x1,x2);因此屏幕上输出2134 执行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不成立,结束循环 10 #include main( ) {intx, y; for(x=30, y=0; x>=10, y<10; x--, y++) x/=2, y+=2; printf(“x=%d,y=%d”,x,y); } 运行结果为: x=0,y=12 11. #include #define N 4 main( ) { inti,j; for(i=1;i<=N;i++) { for(j=1;j printf(" "); printf("*"); printf(""); }} 运行结果为: * * * * 详见教材P41符号常量 用宏处理指令定义符号常量N为4,在编译过程中,遇到N即视为整数4。 外层for循环,表达式1为i=1,表达式2(循环条件)为i<=N,表达式3为 i++ 内层for循环,表达式1为j=1,表达式2(循环条件)为j 首先计算外层循环的表达式1,i为1,使得循环条件i<=4成立,进入外层for循环体 外层for循环第1次此时i为1 内层循环j=1,使得循环条件j 执行printf("*"); 执行printf("");换行 至此外层循环体执行完,计算外层循环的表达式3,i++,此时i为2. 使得循环条件i<=4 成立,再次进入外层for循环体 外层for循环第2次 此时i为2 内层循环j=1,使得循环条件j 第1次执行内层循环体printf(" "); 执行内层循环表达式3,j++为2,j 执行printf("*"); 执行printf("");换行 至此外层循环体执行完,计算外层循环的表达式3,i++,此时i为3. 使得循环条件i<=4 成立,进入外层for循环体 外层for循环第3次 此时i为3 内层循环j=1,使得循环条件j 第1次执行内层循环体printf(" "); 执行内层循环表达式3,j++为2,j 第2次执行内层循环体printf(" "); 执行内层循环表达式3,j++为3,j 执行printf("*"); 执行printf("");换行 至此外层循环体执行完,计算外层循环的表达式3,i++,此时i为4. 使得循环条件i<=4 成立,进入外层for循环体 外层for循环第4次 此时i为4 内层循环j=1,使得循环条件j 第1次执行内层循环体printf(" "); 执行内层循环表达式3,j++为2,j 第2次执行内层循环体printf(" "); 执行内层循环表达式3,j++为3,j 第3次执行内层循环体printf(" "); 执行内层循环表达式3,j++为4,j 执行printf("*"); 执行printf("");换行 至此外层循环体执行完,计算外层循环的表达式3,i++,此时i为5. 使得循环条件i<=4 不成立,跳出外层for循环体 |
随便看 |
|
范文网提供海量优质实用美文,包含随笔、日记、古诗文、实用文、总结、计划、祝福语、句子、职场文档等范文,为您写作提供指导和优质素材。