第一套《C语言》课程期末考试
一、填空题(每空1分,共20分)
1、十进制数 175 的八进制数和十六进制数分别是_____和____ 2、而十进制数 -134 的八进制数和十六进制数分别是____和____ 3、字符 '5' 和 'h' 的ASCII代码值分别为____和____ 4、已知 char a[]=\;则表达式sizeof(a)和sizeof(b)的值分别为____和____
5、已知 char a[]=\则表达式strlen(a)值为____ 6、循环语句for(k=1,c=0;k<8;k++)c++; 执行后c的值为____ 7、循环语句for(k=8,c=0;k>0;--k)c++; 执行后c的值为____
8、循环语句k=1;c=0;while(k<=8){k++;c++;} 执行后c的值为____ 9、循环语句k=8;c=0;do{k--;c++;} while(k>=0); 执行后c的值____
10、已知char a[5],*p=a; 问a[1],a+1,*(p+1),p[1]之中与众不同的是____ 11、已知int a=3,b=4,c=5; 则表达式a>b&&!c||1的值为____
12、已知int a=1,b=3,c=5; 则表达式a>=b>=c?a++:--b的值为____ 13、已知int j=5,m=2,k=7,n=4; 执行语句n+=m*=n=j%k;之后,n和m的值分别为____和____ 14、已知int a=8,b=4,c=1; 则表达式a-b>c&&b!=c的值为____ 15、已知int a=6,b=3,c=5; 则表达式b-a||b+c&&b-c的值为____
二、程序填空(每题4分,共20分) 1、下面C程序的输出是: ____
main() { int m=8;
if(m--<8)printf(\else printf(\}
2、下面C程序的输出是: ____ main()
{ int a=7,*p=&a; *p=a+11+*p;
printf (\}
3、下面C程序的输出是: ____
void f(int n)
{ printf(\if(n>0)f(n/10); }
main()
{ f(12345); } 4、
十个数的选择排升序:
main()
{ int a[11],i,j,t;
printf(\for(____)
scanf(____); for(i=____) for(j=__ __) if(a[j]__ __) { t=__ __; __ __; __ __; }
printf(\for(____)
printf(____); printf(____); }
5、如右图‘数字三角形’输出,请补上C程序:
main()
printf(\
29 30 31 32 33 34 35 36
45
三、选择题(每题一分共10分) (1) 设有声明:
struct t{int x,y;}s[2]={1,2,3,4}; struct t *p=s,*q=s;
++p->x和表达式(++q)->x的值分别为
A、 1,、 1,、 2,、 3,3 (2) 十进制数-27的八进制数和十六进制数为:
A、、0100033 0X801B C、、0177745 0XFFE5 (3) 为了避免嵌套的条件语句if-else的二义性,C语言规定:
A、else与缩排位置相同的if配对 、else与同一行上的if配对 C、else与其之后最近的if配对 、else与其前最近的尚未配对的if配对 (4) 如 int k=11;则执行语句k=1/3*++k;后k取值为:
A、、、、0
(5) 如果int a[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);,则值为9的表达式是:
A、p+=3,*p++ B、p+=4,、p+=4,、p+=4,++*p (6)设有指向同一个数组中不同元素的两个指针,则对它们不能执行的运算是:
A、、-、、-- (7) 能用作变量名字的标识符是:
A、 、、ab-、a123_cd (8) break语句
A、只能出现在if语句中、只能出现在循环体中 C、可用在循环体和switch语句中、可用在函数中的任何语句 (9) 执行循环语句: for(x=y=0;y!=250||x<4;x++)y+=50;
:
A、 、 、、2 (10) 如 int x=14; 下列求商y(需小数结果)的表达式哪一个不对?
A、、、、y=x/5*1.0
四、改错,请将正确的语句和遗漏的语句写在本行的右边(每题5分共10分) 1、 用Fibonacci数列前20个数,以四行五列显示。 main() { int i;
f[i]=f[i-2]+f[i-1];
{ if(i/4=0) printf(\\ printf(\} }
2、判别并显示输入的整数是否为质数。 include
if v=1 then printf(\ else printf(\ } int { int i,
if(p%i==0) {} return v; }
五、编制C语言程序(每题10分共40分)
1、读入被开方数a,用迭代法求出a的平方根。求平方根的迭代公式为 X0=10
Xn=(Xn-1+a/Xn-1)/2 (n>0)
要求前后两次求出的X值的差的绝对值小于0.00001。
2、编程验证歌德巴赫猜想:1000~2000中的每一个偶数都可以表示成两个素数之和。如果此猜想成立,显示“all numbers are OK!”,否则显示“nnnn is not OK!”,这里nnnn是第一个使猜想不成立的偶数。
3、个人每月工资减去800元后的所得税税率为:不超过500元的部分,税率5%;超过500元至2000元,10%;超过2000元至5000元,15%;超过5000元,20% 。 编制C语言程序,由键盘输入每月的工资后,计算应交所得税的金额(精确到分)。
4、写一函数 float getfloat(char s[]);能把字符串s中的字符串转换成float型值。如果s中的字符串是“-123.45”,则应返回-123.45。
相关推荐: