单选题
1.给出以下定义:
char x[ ]="abcdefg";
char y[ ]={'a','b','c','d','e','f','g'};
则正确的叙述为
A) 数组x和数组y等价                B) 数组x和数组y的长度相同
C) 数组x的长度大于数组y的长度        D) 数组x的长度小于数组y的长度
2.设有数组定义: char array[ ]"chinr",则数组 array所占的空间为
A4个字节        B5个字节        C6个字节        D7个字节
3.合法的数组定义是
A)  int a[]="string";        B) int a[5]={0,1,2,3,4,5};
C)  chars="string";              D) char a[]={0,1,2,3,4,5};
4.下列描述中不正确的是
A) 字符型数组中可以存放字符串    B) 可以对字符型数组进行整体输入、输出
C) 可以对整型数组进行整体输入、输出   
D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
5.有以下程序,执行后输出结果是
main()
{ char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
A) 赋初值的字符串有错        B) 6,7        C) 5,6            D) 6,6
6.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是a=1234 b=5
char a[10],b;
scanf(“a=%s b=%c”,a,&b);
7.设有以下语句
typedef struct  S
{  int g;  char  h;}  T;
则下面叙述中正确的是()
A)可用S定义结构体变量              B)可以用T定义结构体变量
C)Sstruct类型的变量            D)Tstruct  S类型的变量
8.若有以下说明和定义,以下叙述正确的是______
typedef int *INTEGER
INTEGER p,*q;
A) pint型变量                    B) p是基类型为int的指针变量
C) q是基类型为int的指针变量        D) 程序中可用INTEGER代替int类型名
9.变量a所占内存字节数是
A)4                B) 5            C) 6                D) 8
union U
{ char st[4];
int i;
long l;
};
srtuct A
{ int c;
union U u;
} a;
10.设有如下定义,若要使p指向data中的成员n,正确的赋值语句是
    struct sk
    {  int n;
        float x;
    } data,*p;
    Ap=&data.n;                        B*p=data.n;       
    Cp=(struct sk *)&data.n;            Dp=(struct sk *) data.n;
11.设有以下宏定义:
#define N 3
#define Y(n) ( (N+1)*n)
则执行语句:z=2*(N+Y(5+1));,z的值为
A) 出错            B) 42            C) 48            D) 54
12.下列不正确的转义字符是:
A ) '\\'            B) "\"        C) '074'            D) '\0'
13.C语言提供的合法的关键字是:
A) swicth            B) cher        C) Case            D) default
14.C语言中,合法的字符常量是:
A) '\084'            B) '\x43'        C) 'ab'            D) "\0"
15.以下叙述中正确的是______
A)构成C程序的基本单位是函数        B) 可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前    D) 所有被调用的函数一定要在调用之前进行
16.已知ijkint型变量,若从键盘输入:1,2,3<回车>,使i的值为1j的值为2k的值为3,以下选项中正确的输入语句是______
A) scanf("%2d%2d%2d",&i,&j,&k);        B) scanf(""%d %d %d",&i,&j,&k);
C) scanf("%d,%d,%d",&i,&j,&k);        D) scanf("i=%d,j=%d,k=%d",&i,&j,&k);
17.下列程序的输出结果是:
A3            B 3.2    C 0        D 3.07
main()
double d3.2int x,y
x=1.2y=x+3.8/5.0
printf("%d\n", d*y);
}
18.下列程序执行后的输出结果是(小数点后只写一位)
A6 6 6.0 6.0        B6 6 6.7 6.7        C 6 6 6.0 6.7    D 6 6 6.7 6.0
main()
{ double d float f long l int i;
i=f=l=d=20/3;
printfdldffn”ilfd);
19.设有说明语句:char a='\72';则变量a
A) 包含1个字符        B) 包含2个字符        C) 包含3个字符        D) 说明不合法
20.下列叙述中正确的是:
A) C语言编译时不检查语法        B) C语言的子程序有过程和函数两种
C) C语言的函数可以嵌套定义        D) C语言所有函数都是外部函数
21.下列选项中,合法的C语言关键字是:
A) VAR            B) cher            C) integer    D) default
22.在一个C语言程序中
A) main函数必须出现在所有函数之前        B) main函数可以在任何地方出现
C) main函数必须出现在所有函数之后        D) main函数必须出现在固定位置
23.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()
A)if((a>b)&&(b>c)) k=1;                  B) if((a>b)||(b>c))  k=1         
else k=0;                                    else  k=0;
C)if(a<=b)  k=0;                          D) if(a>b)  k=1;
  else if(b<=c)  k=1;                        else if(b>c)  k=1;
                                            else k=0;
24.阅读以下程序:程序运行后,如果从键盘上输人5,则输出结果是
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++);
}
A) 3            B) 4            C) 5            D) 6
25.假定wxyzm均为int型变量,有如下程序段:
w=1; x=2; y=3; z=4;
m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;
则该程序运行后,m的值是
A) 4            B) 3            C) 2            D) 1
26.有以下程序,输出结果是
main()
{ int i, j;
for(j=10;j<11;j++)
{for(i=9;i=j-1)printf("%d",j);
}
}
A) 11        B) 10        C) 9        D) 10 11
27.当执行以下程序段时
A)循环体将执行一次                B)循环体将执行两次
C)循环体将执行无限次            D)系统将提示有语法错误
x=-1
do { x=x*x} while(!x);
enum c++
28.有如下程序,该程序段的输出结果是
main0
{ int n=9;
while(n>6) {n--;printf("%d",n);}
}
A) 987        B) 876        C) 8765        D) 9876
29.有以下程序段
int k=0
while(k=1)k++;
while 循环执行的次数是
A) 无限次        B) 有语法错,不能执行    C) 一次也不执行        D) 执行1
30.当调用函数时,实参是一个数组名,则向函数传送的是
A) 数组的长度                                B) 数组的首地址
C) 数组每一个元素的地址                    D) 数组每个元素中的值
31.若有以下定义和语句:
char *s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是
A) 4                B) 5                C) 9                D) 10
32.若有以下定义和语句:  int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是
A) *p                B) a[10]            C) *a            D) a[p-a]
33.若有以下的定义:
int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a;  则值为3的表达式是
A) p+=2; *(p++);    B) p+=2;*++p;    C) p+=3; *p++;        D) p+=2;++*p;
34.设有如下定义, 若有p=&data;,则对data中的a域的正确引用是
struct sk
{int a;float b;}data,*p;
A) (*p).data.a        B) (*p).a        C) p->data.a    D) p.data.a
35.以下对枚举类型名的定义中正确的是
A) enum a={one,two,three};            B) enum a {one=9,two=-1,three};
C) enum a={"one","two","three"};    D) enum a {"one","two","three"};
36.有以下定义,不能给数组a输入字符串的语句是
#include <stdio.h>
char a[10],*b=a;
A) gets(a)        B) gets(a[0])        C) gets(&a[0]);        D) gets(b);
37.有以下程序,执行后输出结果是
main( )
{ char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
  printf("%d\n",strlen(p[4]));
A) 2            B) 3                C) 4                    D) 5
38.若有以下调用语句,则不正确的fun函数的首部是
A) void fun( int m,int x[ ])        B) void fun( int s, int h[41])
C) void fun( int p, int *s)        D) void fun(int n, int a)
main( )
{
int a[50], n;
fun( n,&a[9]);
}
39.以下程序的输出结果是

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