2017下半年计算机2级c语言题库
C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。下面是小编收集的计算机2级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()
{ 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中的值