考试科目: 计算机程序设计根底          考试时间:     
题  号
总分
得  分
阅卷人
一、单项选择题〔每题1分,共30分〕
1.一个C程序的执行是从〔〕。
  〔Amain〔〕函数开场,直到main〔〕函数完毕
    〔B〕第一个函数开场,直到最后一个函数完毕
C〕第一条语句开场,直到最后一条语句完毕
Dmain〔〕函数开场,直到最后一个函数完毕
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; 以下不正确的赋值语句是〔〕。〔Ach=’123’;    Bch=’\*ff’;Cch=’\08’;    Dch=〞\〞;   
9.逗号表达式(a=3*5,a*4),  a+15的值是〔〕。a的值是〔〕。①〔A15        B60        C30    D〕不确定②〔A60        B30        C15    D90   
10.int a=2,b,c; 则执行c=b=a――;语句后,a 的结果是〔B〕。b的结果是〔C〕。c的结果是〔C〕。〔A0        B1        C2        D3
11.以下正确的C语言标识符是〔〕。〔A%*        Ba+b        Ca123Dtest
12.以下字符序列中,不可用作C语言标识符的是〔 〕。
A〕abc123        B〕no.1    〔C〕_123_    〔D〕_ok
13.以下符号常量中非法的是〔  〕。〔A’\a’        B’b’        C’\’    D’3’
14.在C语言中,不同的类型数据混合运算时,要先转换成同一类型后进展运算。设一表达式中包含有intlongunsignedchar类型的变量和数据,则表达式最后的运算结果是〔  〕类型数据。〔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
16.有如下程序:int a1,a2;    char c1,c2;    scanf(“%d%c%d%c〞,&a1,&c1,&a2,&c2);正确的输入是〔〕。A〕10A  20B<CR>     〔B10  A  20  B<CR>
    〔C10  A20B<CR>     〔D10A20  B<CR>
17.有如下程序: scanf(“a=%d,b=%d,c=%d〞,&a,&b, &c);
假设要求a,b,c的值分别为1,3,2,正确的输入是〔〕。〔A132<CR>           〔B1,3,2<CR>
Ca=1,b=3,c=2<CR>Da=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--);}
A11,10        B9,10    C010,9        D10,9
20.以下程序的执行结果是〔〕。{int a=2,c=5;      printf(“a=%%d,b=%%d\n〞,a,c);}
Aa=%2,b=%5            〔Ba=2,b=5
Ca=%%d,b=%%d        Da=%d,b=%d
21.已有定义:int *=3, y=4, z=5; 则表达式!(*+y)+z-1 && y+z/2的值是〔〕。
A6          B0          CD1
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语言用〔  〕表示逻辑“真〞值。〔Atrue    c语言程序分析题及答案Bt y        C〕非零整数值        〔D〕整数0
26.以下for循环是〔  〕。
For (*=0,y=0;    (y!=123) && (*<4);    *++);
A〕无限循环    〔B〕循环次数不定    C〕执行4次    〔D〕执行3次
27.对于for〔表达式1; ;表达式3〕可理解为〔〕。〔Afor〔表达式1;0;表达式3〕
    〔Bfor〔表达式1;1;表达式3〕
Cfor〔表达式1;表达式1;表达式3〕
Dfor〔表达式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);}
上面程序的输出结果是〔〕。Aa=2,b=1        〔Ba=1,b=1
Ca=1,b=0        〔Da=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- -;
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);    }
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小时内删除。