C语言程序设计参考题型
说明:    ★本题仅反映考试的题型,作为考前复习参考。
★要通过这些典型题目,掌握复习要点中所列内容。所给题目不可死记硬背,而是通过题目掌握其涉及要点和重要算法。
一、单项选择题
1. C程序的基本构成单位是                                                    【 C 】
A)文件        B)命令        C)函数        D)语句
2. 下列叙述中错误的是                                                        【 C 】
A)C程序中main( )函数的位置可以任意
B)C程序可以由多个程序文件组成, 而一个程序文件又可以由一个或多个函数组成
C)每个程序文件都有一个main( )函数
D)C程序总是从main( )开始执行,也是由它结束
3. 将C源程序转换为目标程序的过程称为                                        【 B 】
A)编辑        B)编译        C)连接        D)运行
4. C语言中最基本的数据类型包括                                                【 B 】
A)整型、实型、逻辑型            B)整型、实型、字符型
C)整型、逻辑型、字符型            D)整型、实型、字符串型
5. 以下不合法的用户标识符是                                                    【C  】
Aj2_KEY    BDouble    C4d      D_8_
6. C源程序中不能表示的数制是                                                【A  】
A)二进制        B)八进制        C)十进制        D)十六进制
7. 以下合法的字符常量的是                                                   
A'\x13'        B'\081'            C'65'        D"\n "
8. 以下选项中,能用作数据常量的是                                            D
Ao115        B0118        C1.5e1.5        D115L
9. C语言中,要求运算对象必须是整型数据的运算符是                            【A  】
A)%        B)/        C)\        D)&&
10. 表示数学关系“x≥y≥z”的C语言表达式是                                    【C  】
A)x>=y>=z        B)x>=y || y>=z        C)x>=y&&y>=z        D)x≥y≥z
11. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是                       
Ax=y==5;    Bx=n%2.5;        Cx+n=j;        Dx=5=4+1;
12. 设有定义:int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是        A
A)k++        B)k+=1        C)++k        D)k+1
13. 若有代数式:
以下错误的C语言表达式是                                                    【 C 】
A)a/b/c*e*3        B)3*a*e/b/c        C)3*a*e/b*c        D)a*e/c/b*3
14. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为        【C  】
A)int        B)float        C)double        D)不确定
15. 若p和x已经正确定义,x已赋值,并且p=&x,则下列关系表达式之值为1的是    【  B】
A)p==x        B)*p==x        C)&p==x        D)*x==p
16. 当用户要求输入的字符串中含有空格时,应使用的输入函数是                    【 C 】
Ascanf()        Bgetchar()        Cgets()        Dgetc()
17. 下列能输出字符数组str中字符串的语句是                                      【 B 】
A)printf("%c",str[0]);                B)printf("%s",str);
C)printf("%s",str[]);                D)putchar(str);
18. 有输入语句:
scanf("%d,%d",&a,&b);
为使变量a、b分别为5和3,从键盘输入数据的正确形式为                        【 B 】
A)5  3<回车>        B)5,3<回车>        C)a=5  b=3<回车>        D)a=5,b=3<回车>
19. 定义如下变量和数组:
int  j;
int  x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是                                                    【 C 】
for(j=2; j>=0; j--)
        printf("%2d",x[j][2-j]);
A)1 5 9            B)1 4 7        C)7 5 3            D)3 6 9
20. 执行下面程序后,a的值是                                                    【 B 】
#define  SQR(x)  x*x
void main( )
{    int  a=10,k=2,m=1;
        a=SQR(k+m);
        printf("%d\n",a);
}
A)10        B)5        C)2        D)1
21. 简单if语句的基本形式:if(表达式)语句                                    【D  】
其中表达式
A)必须是逻辑表达式                    B)必须是关系表达式
C)必须是逻辑表达式或关系表达式        D)可以是任意合法的表达式
22. 在嵌套使用if语句时,C语言规定else总是                                    【 C 】
A)和之前与其具有相同缩进位置的if配对    B)和之前与其最近的if配对
C)和之前与其最近的且不带elseif配对    D)和之前的第一个if配对
23. 下列叙述中正确的是                                                        【D  】
A)break语句只能用于switch语句
B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用
D)在switch语句中,不一定使用break语句
24. 有以下程序段:
x=-1;
do
  x=x*x;
while(!x);
执行时,循环体执行的次数为                                                【B  】
A)0            B)1        C)2        D)不确定
25. 以下不正确的if语句形式是                                                    【C  】
A)if(x>y&&x!=y);                            B)if(x==y)  x+=y;
C)if(x!=y) scanf("%d",&x) else scanf("%d",&y);    D)if(x<y)  {x++;y++;}
26. 以下程序的输出结果是                                                        【 C 】
void main( )
{    int x=2,y=-1,z=2;
        if(x<y)
            if(y<0)    z=0;
            else    z+=1;
        printf("%d\n",z);
}
A)0        B)1        C)2        D)3
27. 以下能正确计算1×2×3×…×10的程序段是                                    【 A 】
A)    i=1,s=1;                    B)    s=1;i=1;
        do                            while(i<=10)
        {s=s*i;i++;}                          s=s*(++i);
        while(i<11);
C)    for(i=1,s=0;i<=10;i++)        D)    for(i=1,s=1;;i++)
          s=s*i;                            s=s*i;
28. 若j为整型变量,则以下循环执行次数是                                        【 C 】
for(j=0;j==0;)        printf("%d",j--);
A)无限次        B)0次        C)1次        D)2次
29. 若有说明:int  a[10];则对a数组元素的正确引用是                                【 C 】
A)a[3.5]        B)a(8)        C)a[6-5]        D)a[10]
30. 若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x 数组元素的是    【B  】
A*p        Bx[5]        C*(p+1)        D*x
31. C中,一个char类型的数据在内存中占用的字节数是                            【A  】
A)1          B)2          C)4          D)8
32. 设有程序段:
int k=5;
while (k<=0)
    k--;
则下列描述中正确的是                                                        【 C 】
A)while循环执行5次            B)循环是无限循环
C)循环语句一次也不执行        D)循环体语句执行一次
33. 下面程序段的运行结果是                                                    【 B 】
char c[5]={ 'a', 'b', '\0', 'c', '\0' };
printf(“%s”, c);
A)'a''b'        B)ab          C)Abc          D)"abc"
34. 以下不正确的字符串赋值语句是                                                【C  】
A)char *s; s="abcde";            B)char s[ ]="abcde";
C)char s[10]; s="abcde";            D)char *s="abcde";
35. 设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是    【 B 】
A)k=*p1+*p2;        B)p2=k;        C)p1=p2;        D)k=p2-p1;
36. 下面程序的输出结果是                                                        【 A 】
void main( )
{ char s[ ]= "ABCD";
  char *p;
  for (p=s;p<s+4;p++)
    printf(“%s\n”, p);
}
A)    ABCD        B)    A        C)     D        D)    ABCD
        BCD            B            C            ABC
        CD                C            B            AB
        D                D            A            A
37. 以下关于C函数的定义和调用描述正确的是                                    【B  】
A)函数的定义可以嵌套,但函数的调用不可嵌套
B)函数的调用可以嵌套,但函数的定义不可嵌套
C)函数的定义和调用均可以嵌套
D)函数的定义和调用均不可嵌套
38. 以下关于变量的存储类型和作用域说法错误的是                                【 C 】
A)函数内定义的变量默认存储类型为auto,函数调用结束时释放其值
B)静态局部变量的生存期虽然被延长,但作用范围依然只限于所在函数内有效
C)寄存器变量主要用于使用频度较高的变量,其资源依然使用计算机内存
D)外部变量可以跨文件使用,但静态外部变量不允许跨文件使用
39. 以下关于变量的作用域叙述不正确的是                                        【D  】
A)在函数内部定义的变量是局部变量
B)函数中的形式参数是局部变量
C)局部变量的作用范围仅限于其所在函数或复合语句
D)全局变量的作用范围仅限于其所在的文件
40. 以下关于C函数参数说法不正确的是                                            【 B 】
A)实参可以是常量、变量和表达式        B)形参可以是常量、变量和表达式
C)实参和形参可以为任意数据类型        D)实参与对应的形参类型一致
41. 以下关于C函数返回值的叙述正确的是                                        【 D 】
A)被调函数中只有使用return语句才能返回主调函数
B)使用一个return语句可以返回多个函数值
C)函数返回值类型取决于return语句中的表达式类型
D)函数返回值类型取决于定义该函数时所指定的类型
42. 以下数组定义中错误的是                                                    【 B 】
Aint x[][3]={0};                    Bint x[2][3]={{1,2},{3,4},{5,6}};switch case判断字符串
Cint x[][3]={{1,2,3},{4,5,6}};         Dint x[2][3]={1,2,3,4,5,6};
43. 若有定义语句:char s[10]="1234567\0\0";strlen(s)的值是                        【    A】
A7        B8        C9        D10
44. 给定以下程序段:
int n=10;
while (n>6)
{    n--;
    printf(“%3d”,n);
}
以上程序段输出结果是                                                        【    D】
A)10  9  8        B)9  8  7        C)10  9  8  7        D)9  8  7  6
45. 若i,j已定义为int型,则以下程序段中内循环总的执行次数是                    【C    】
for (i=5; i>0; i--)
    for (j=1; j<6; j++)
        {……}
A)30        B)24        C)25        D)20
46. 若已定义:float *p, m=3.14159; 则使p指向m正确的赋值语句是                    【B    】
A)p=m;        B)p=&m;    C)*p=m;        D)*p=&m;
47. 若已定义:char s[10]; 则下面表达式中不能作为s[1]地址的是                        【A    】
A)s++        B)s+1        C)&s[0]+1        D)&s[1]
48. 已知:int a=3, b=5, t; 要将ab中的数值进行交换,错误的程序段是                C
Aa=a+b; b=a-b; a=a-b;            Bt=a; a=b; b=t;
Ct=a; b=a; a=t;                Dt=b; b=a; a=t;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。