计算机二级C语言测试题及答案
计算机c语言的学习内容是DOS命令,计算机组成原理,多媒体、数据库操作、计算机网络、C语言程序设计、上机考试。以下是百分网小编为大家编辑的计算机c语言考试题及答案,欢迎阅读!
1.
#include
main()
{ int a=1,b=3,c=5;
if (c==a+b)
printf("yes\n");
else
printf("no\n");
}
运行结果为:no
详见教材p89 选择结构
详见教材p91关系符号
详见附录D p378符号的优先级
==表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变量
本题考点是选择结构3种基本形式的第二种
选择结构三种一般形式中的“语句”皆为复合语句,复合语句要用{ }括起来,只有当复合语句中只包括一条语句时可以省略{ },此题即如此,因此两个printf操作没有加{ }
若c==a+b成立,则执行printf("yes\n");
否则(即c==a+b不成立),执行printf("no\n");
+的优先级高于==,因此先算a+b,值为4, 表达式5==4不成立,因此执行printf("no\n");即输出字符串no
2.
#include
main()
{ int a=12, b= -34, c=56, min=0;
min=a;
if(min>b)
min=b;
if(min>c)
min=c;
printf("min=%d", min);
}
运行结果为: min=-34
详见教材p89 选择结构
本题考点是选择结构3种基本形式的第一种
一共包含了两个选择结构(两个if语句)
定义变量,并赋值 此时a=12, b= -34, c=56, min=0
将a中值拷贝,赋给min,覆盖了min中的0,此时min中的值被更新为12。
若min>b成立,则执行min=b;
若min>c成立,则执行min=c;
输出min中的值
12大于-34,第一个if语句的表达式成立,因此执行min=b; 执行后min中的值被更新为-34.
-34小于56,第二个if语句的表达式不成立,因此不执行min=c;
最后输出min中的值,为-34.
3.
#include
main()
{ int x=2,y= -1,z=5;
if(x if(y<0)
z=0;
else
z=z+1;
printf(“%d\n”,z);
}
运行结果为:5
遇到选择结构,首先要明确条件表达式成立时执行哪些操作。本题中,第一个if语句,其后的复合语句没有大括号{ },说明复合语句中只包含一条语句,进而省略了{ }。内层的if...else...是选择结构的第二种基本形式,在结构上视为一条语句。因此内层的if...else...作为第一个if语句的复合语句。
若表达式x 若y<0,则执行z=0;
否则(即y>=0),执行z=z+1;
输出z
2>-1,表达式x 输出z中的值为5
4.
#include
main()
{ float a,b,c,t;
a=3;
b=7;
c=1;
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%5.2f,%5.2f,%5.2f",a,b,c);
}
运行结果为:1.00,2.00,7.00
详见教材p72数据的输出形式
本题包含了3个if语句,每个if语句后的{ }都不可省略,因为每个{ }中都包含了多条语句
若表达式a>b成立,则执行{t=a;a=b;b=t;}
若表达式a>c成立,则执行{t=a;a=c;c=t;}
若表达式b>c成立,则执行{t=b;b=c;c=t;}
输出a,b,c中的值,要求输出的每个数据宽度为5个空格,小数部分保留2位,数据右对齐
3小于7,因此表达式a>b不成立,因此不执行{t=a;a=b;b=t;}
3大于1,因此表达式a>c成立,则执行{t=a;a=b;b=t;}。第一句,将a中的3拷贝,粘贴到t中;第二句,将c中的1拷贝,粘贴到a中,覆盖掉先前的3;第三句。将t中的3拷贝到c中,覆盖掉c中先前的1. 执行完复合语句后实现了a,c元素的值的互换,a为1,c为3,t为3,。
7大于c中的3,因此b>c成立,执行则执行{t=b;b=c;c=t;},过程同上,执行后b为3,c为7,t为7
此时输出a,b,c中的值为1.00,2.00,7.00
5.
#include< stdio .h >
main ( )
{floatc=3.0 , d=4.0;
if ( c>d ) c=5.0;
else
if ( c==d ) c=6.0;
elsec=7.0;
printf ( “%.1f\n”,c ) ;
}
运行结果为:7.0
此题为if...else...语句的嵌套,第二if...else...作为第一个if...else...语句else部分的复合语句。
若表达式c>d成立,则执行c=5.0;
否则(表达式c>d不成立)
若表达式c==d成立,则执行c=6.0;
否则,执行c=7.0;
输出c中的值
3.0小于4.0,因此表达式c>d不成立,执行第二个if…else…。
3.0不等于4.0,因此表达式c==d不成立,执行c=7.0,将7.0赋给c, 覆盖掉c中的3.0,此时c中的值为7.0
输出此时的c中的值
1.
#include "stdio.h"
main()
{char c;
c=getchar();
while(c!='?') {putchar(c);c=getchar(); }
}
如果从键盘输入abcde?fgh(回车)
运行结果为:abcde
2.
#include
main()
{ char c;
while((c=getchar())!=’$’)
{ if(‘A’<=c&&c<=‘Z’)putchar(c);
else if(‘a’<=c&&c<=‘z’)putchar(c-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=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语句。
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
【计算机二级C语言测试题及答案】相关文章:
2017计算机二级C语言测试题及答案08-09
2023计算机二级C语言测试题及答案10-23
计算机二级《C语言》测试题及答案202411-02
2016计算机二级《C语言》测试题及答案08-23
计算机二级《C语言》测试题与答案解析10-30
计算机二级C语言测试题及答案解析07-11
计算机二级C语言预测试题及答案10-30
计算机二级C语言测试题及答案201610-09
2017年计算机二级C语言测试题及答案09-26
2017计算机二级C语言上机测试题附答案10-24