考试科目: 计算机程序设计根底 考试时间:
题 号 | 一 | 二 | 三 | 总分 |
得 分 | ||||
阅卷人 | ||||
一、单项选择题〔每题1分,共30分〕
1.一个C程序的执行是从〔〕。
〔A〕main〔〕函数开场,直到main〔〕函数完毕
〔B〕第一个函数开场,直到最后一个函数完毕
〔C〕第一条语句开场,直到最后一条语句完毕
〔D〕main〔〕函数开场,直到最后一个函数完毕
2.在C语言程序中,main〔〕的位置〔〕。
〔A〕必须作为第一个函数〔B〕必须作为最后一个函数
〔C〕可以任意 〔D〕必须放在它所调用的函数之后
3.一个C语言程序是由〔〕。
〔A〕一个主程序和假设干个子程序组成〔B〕一个或多个函数组成〔C〕假设干个过程组成〔D〕假设干个子程序组成
4.以下说法中,错误的选项是〔〕。
〔A〕每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号
〔B〕每个函数都有一个函数头和一个函数体,主函数也不例外
〔C〕主函数只能调用用户函数或系统函数,用户函数可以相互调用
〔D〕程序是由假设干个函数组成的,但是必须有、而且只能有一个主函数
5.以下符号中,不属于转义字符的是〔 〕。
〔A〕\\ 〔B〕\0*AA 〔C〕\t 〔D〕\0
6.C语言源程序的根本单位是〔〕。
〔A〕过程〔B〕函数〔C〕子程序 〔D〕标识符
7.以下结果为整数的表达式是〔〕。〔 设有inti;char c; float f; 〕〔A〕i+f〔B〕i*c〔C〕c+f 〔D〕i+c+f
8.设有char ch; 以下不正确的赋值语句是〔〕。〔A〕ch=’123’; 〔B〕ch=’\*ff’;〔C〕ch=’\08’; 〔D〕ch=〞\〞;
9.逗号表达式(a=3*5,a*4), a+15的值是〔〕。a的值是〔〕。①〔A〕15 〔B〕60 〔C〕30 〔D〕不确定②〔A〕60 〔B〕30 〔C〕15 〔D〕90
10.设int a=2,b,c; 则执行c=b=a――;语句后,a 的结果是〔B〕。b的结果是〔C〕。c的结果是〔C〕。〔A〕0 〔B〕1 〔C〕2 〔D〕3
11.以下正确的C语言标识符是〔〕。〔A〕%* 〔B〕a+b 〔C〕a123〔D〕test!
12.以下字符序列中,不可用作C语言标识符的是〔 〕。
〔A〕abc123 〔B〕no.1 〔C〕_123_ 〔D〕_ok
13.以下符号常量中非法的是〔 〕。〔A〕’\a’ 〔B〕’b’ 〔C〕’\’ 〔D〕’3’
14.在C语言中,不同的类型数据混合运算时,要先转换成同一类型后进展运算。设一表达式中包含有int、long、unsigned和char类型的变量和数据,则表达式最后的运算结果是〔 〕类型数据。〔A〕int 〔B〕char 〔C〕unsigned 〔D〕long
15.如下程序的执行结果是〔 〕。{ int n=1; printf(“%d %d %d\n〞,n, n++,n--);}
〔A〕1 1 1〔B〕1 0 1〔C〕1 1 0〔D〕1 2 1
〔A〕1 1 1〔B〕1 0 1〔C〕1 1 0〔D〕1 2 1
16.有如下程序:int a1,a2; char c1,c2; scanf(“%d%c%d%c〞,&a1,&c1,&a2,&c2);正确的输入是〔〕。〔A〕10A 20B<CR> 〔B〕10 A 20 B<CR>
〔C〕10 A20B<CR> 〔D〕10A20 B<CR>
17.有如下程序: scanf(“a=%d,b=%d,c=%d〞,&a,&b, &c);
假设要求a,b,c的值分别为1,3,2,正确的输入是〔〕。〔A〕132<CR> 〔B〕1,3,2<CR>
假设要求a,b,c的值分别为1,3,2,正确的输入是〔〕。〔A〕132<CR> 〔B〕1,3,2<CR>
〔C〕a=1,b=3,c=2<CR> 〔D〕a=1 b=3 c=2<CR>
18.与数学式子对应的C语言表达式是〔〕。〔A〕9**^n/(2**-1) 〔B〕9****n/(2**-1)〔C〕9*pow(*,n)*(1/(2**-1)) 〔D〕9*pow(n,*)/(2**-1)
19.以下程序的执行结果是〔〕。
{int i=010,j=10; printf(“%d,%d\n〞,++i,j--);}
〔A〕11,10 〔B〕9,10 〔C〕010,9 〔D〕10,9
{int i=010,j=10; printf(“%d,%d\n〞,++i,j--);}
〔A〕11,10 〔B〕9,10 〔C〕010,9 〔D〕10,9
20.以下程序的执行结果是〔〕。{int a=2,c=5; printf(“a=%%d,b=%%d\n〞,a,c);}
〔A〕a=%2,b=%5 〔B〕a=2,b=5
〔A〕a=%2,b=%5 〔B〕a=2,b=5
〔C〕a=%%d,b=%%d 〔D〕a=%d,b=%d
21.已有定义:int *=3, y=4, z=5; 则表达式!(*+y)+z-1 && y+z/2的值是〔〕。
〔A〕6 〔B〕0 〔C〕2 〔D〕1
22.以下使i的运算结果为4 的表达式是〔 〕。〔A〕int i=0,j=0; (i=3,(j++)+i);
〔B〕int i=1,j=0; j=i=((i=3)*2);
〔C〕inti=0,j=1; (j= =1)"(i=1):(i=3);
〔D〕int i=1,j=1; i+=j+=2
23.如果a=1,b=2,c=3,d=4,则表达式a<b" a:c<d" c:d的值为〔 〕。 〔A〕1 〔B〕 2 〔C〕 3 〔D〕 4
24.选择出合格的if语句〔设int *,a,b,c;〕( )。
〔A〕if (a=b) *++; 〔B〕if (a=<b) *++;
〔C〕if (a<>b) *++; 〔D〕if (a=>b) *++;
25.C语言用〔 〕表示逻辑“真〞值。〔A〕true c语言程序分析题及答案〔B〕t 或y C〕非零整数值 〔D〕整数0
26.以下for循环是〔 〕。
For (*=0,y=0; (y!=123) && (*<4); *++);
〔A〕无限循环 〔B〕循环次数不定 〔C〕执行4次 〔D〕执行3次
27.对于for〔表达式1; ;表达式3〕可理解为〔〕。〔A〕for〔表达式1;0;表达式3〕
〔B〕for〔表达式1;1;表达式3〕
〔C〕for〔表达式1;表达式1;表达式3〕
〔D〕for〔表达式1;表达式3;表达式3〕
28.以下程序段的输出结果是〔〕。
*=-1; do {*=***;} while (!*);
〔A〕是死循环 〔B〕循环执行二次 〔C〕循环执行一次 〔D〕有语法错误
29.阅读以下程序,当输入数据的形式是:12,34,正确的输出结果为〔 〕。
#include “stdio.h〞
main()
{int a,b;
scanf(“%d%d〞,&a,&b);
printf(“a+b=%d\n〞,a+b);
}
〔A〕a+b=46 〔B〕有语法错误
〔C〕a+b=12 〔D〕不确定值
30.请读程序:#include<stdio.h>main(){int *=1,y=0,a=0,b=0;switch(*){case 1:switch(y) {case 0:a++;break; case 1:b++;break;}case 2:a++;b++;break;}
printf("a=%d,b=%d\n",a,b);}
上面程序的输出结果是〔〕。〔A〕a=2,b=1 〔B〕a=1,b=1
〔C〕a=1,b=0 〔D〕a=2,b=2
二、填空题〔每空2分,共30分〕
1.设int a=1,b=2,c; 执行c=(-a++)+(++b); 后,变量c的结果是2。
2.执行以下语句后,z的值是7。
int *=4,y=25,z=2; z=(- -y/++*)*z- -;
int *=4,y=25,z=2; z=(- -y/++*)*z- -;
3.以下程序的执行结果是-1。 unsigned int b=65535; printf(“%d〞,b);
4.以下程序的执行结果是6,8,6,7。
main( )
{ int i,j,*,y; i=5; j=7; *=++i; y=j++; printf(“%d,%d,%d,%d\n〞,i,j,*,y);}
5.以下程序的执行结果是n=-4。{ int n=2; n+=n-=n*n; printf(“n=%d\n〞,n);}
6.以下程序的执行时,先输入a↙;后输入b↙。最后显示的结果是a↙,b。
#include <stdio.h>
main( ){int i,j; printf(“Enter a character:〞);
i=getchar( ); j=getchar( ); putchar(i);printf(“Enter a character,again :〞);
i=getchar( ); j=getchar( ); printf(“%c,%c\n〞,j,i); }
#include <stdio.h>
main( ){int i,j; printf(“Enter a character:〞);
i=getchar( ); j=getchar( ); putchar(i);printf(“Enter a character,again :〞);
i=getchar( ); j=getchar( ); printf(“%c,%c\n〞,j,i); }
7.以下程序的执行结果是 dec:1,oct:1,he*:1,unsigned:1。
{short i=1; printf(“dec:%d,oct:%o,he*:%*,unsigned:%u\n〞,i,i,i,i);}
8.以下程序的执行结果是3.141592,3.1415,3.142。
{float f=3.1415927; printf(“%f,%5.4f,%3.3f〞,f,f,f);}
9.以下程序输入*=1.23,y=50<CR>后的执行结果是*= 1.23,y= 50.00。
{float *,y;
scanf(“*=%f,y=%f〞,&*,&y);printf(“*=%7.2f,y=%7.2f\n〞,*,y);}
10.以下程序的执行结果是end。
{int a,b,c; a=2;b=3;c=1; if (a>b)
if (a>c)printf(“%d\n〞,a);
else printf(“%d\n〞,b);
printf(“end\n〞); }
11.以下程序在输入5,2之后的执行结果是s=2,t=3。
{int s,t,a,b; scanf(“%d,%d〞,&a,&b); s=1;t=1;
if (a>0) s=s+1;
if (a>b) t=s+t;
else if (a==b) t=5;
else t=2*s;
printf(“s=%d,t=%d\n〞,s,t);}
12.执行以下程序,输入-10的结果是y=0,输入5的结果是y=5,输入10的结果是y=10 ,输入30的结果是y=5.000000↙y=5。
{ int *,c,m; float y; scanf("%d",&*);
if (*<0) c=-1;
else c=*/10;
switch(c)
{ case -1:y=0;break;
case 0:y=*;break;
case 1:y=10;break;
case 2:
case 3:{y=-0.5**+20; printf("\ty=%f\n",y); break;}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论