单选题
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所占的空间为
A)4个字节 B)5个字节 C)6个字节 D)7个字节
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)S是struct类型的变量 D)T是struct S类型的变量
8.若有以下说明和定义,以下叙述正确的是______。
typedef int *INTEGER
INTEGER p,*q;
A) p是int型变量 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;
A.p=&data.n; B.*p=data.n;
C.p=(struct sk *)&data.n; D.p=(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.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为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.下列程序的输出结果是:
A)3 B) 3.2 C) 0 D) 3.07
main()
{double d=3.2;int x,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n", d*y);
}
18.下列程序执行后的输出结果是(小数点后只写一位)
A)6 6 6.0 6.0 B)6 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;
printf(”%d%ld%f%f\n”,i,l,f,d);
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.假定w、x、y、z、m均为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小时内删除。
发表评论