B. int a[]=(0,1,2,3,4,5);
C. char a={'A','B','C'};
D. char a[5]=\
20,与定义char c[]={\不等价的是
A. char c[]=\
B. char c[]={'G','O','D','\\0'};
C. char c[5]={'G','O','D','\\0'};
D. char c[3]={\
21,对于下面程序段,执行的结果是 char c[5]={?a?,?b?,?\\0?,?c?,?\\0?}; printf(“%s”,c);
A. ?a??b?
B. ab
C. ab c
D. a,b
22,设char Q='a', *p=&Q;下面说法中错误的是
A. *p='a'
B. &*p=&Q
C. &p=&Q
D. *&Q='a' 23,有以下程序 main()
{int a[]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p<=a+9;p++)printf(\)
程序运行后的输出结果是
A. 1,2,3,4,5,6,7,8,9,0,
B. 2,3,4,5,6,7,8,9,10,1,
C. 0,1,2,3,4,5,6,7,8,9,
D. 1,1,1,1,1,1,1,1,1,1,
24,若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是
A. a,p,&*a
B. *&a,&a,*p
C. &a,p,&*p
D. *&p,*p,&a
25,设有语句:int a[10],*p =a;,则下面的语句中,不正确的是
A. p=p+1;
B. *p=*p+1;
C. a[0]=a[0]+1;
D. a=a+1;
26,当int类型长度为2字节时,则类型unsigned int的值域范围为
A. 0至255
B. -256至255
C. -32768至32676
D. 0至65535 27,有如下程序: #include
{ int t2; t2=b*3; b=100; } void main() { int a=2; b=4; f1(); }
叙述正确的是:
A. a和b都是静态变量。
B. a是静态变量,b是动态变量。
C. a和b都是全局变量。
D. a是局部变量,b是全局变量。
28,下面的for循环最多可执行________次。 for(x=0,y=0;(y!=99)&&(x<4);x++);
A. 4次
B. 5次
C. 99次
D. 0次
29,下列判断char类型变量C1是否为数字的表达式中,哪个表达式最简单且正确。
A. '0'<=C1<='9'
B. (C1>='0')&&(C1<='9')
C. (C1>=0)&&(C1<=9)
D. ('0'<=C1)||('9'>=C1)
30,若有以下的说明,则对初值中字符'a'的引用方式为________。 static struct { char ch; double x; char t;
}c[2][2]={{{'a',35,'b'},{'c',45,'d'},{'a',86, 'm'}}};
A. c.ch
B. c[0][1].ch
C. c[1][1].ch
D. c[0][0].ch
二,改错。
1,在C程序中,注释部分从/*开始,到*/结束。
2,switch语句中,case后面既可以跟常量,也可以跟已赋值的变量。
3,一个C语言程序中包含有多个函数时,按书写顺序从上到下执行各函数。 4,若一个函数的返回类型为void,则表示其没有返回值
5,student_name、_name、name8和name_8都是合法标识符。
6,不对自动(auto)数组进行初始化,数值型数组隐含初值为0,字符数组隐含初值空字符'\\0'
7,假设int型数组a的起始地址为2000,则元素a[3]的地址为:2000+4×2=2008。 8,结构化程序设计认为一个\好\程序主要应该是:程序短而紧凑。
9,如果知道整型变量a的地址是2000,可以直接用 int *pa=2000; 给指针变量pa赋值,使其指向变量a。
10,在C语言的if语句中,用作判断的表达式只能为逻辑表达式和关系表达式。 三,综合。 1,注意: 注意:
1.该源程序放在: d:\\ExamProg\\002\\test1.c
2.编译该程序时,请首先将程序中开头的功能说明注释掉或删除! 3.程序功能说明及源程序如下:
/*下面程序的功能是:计算并输出500以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/
#include
int total=0, mc=1, k=500; int pm[10],count=0;
while( (k>=2) && mc<=10 ) {
if ((k==0) || (k==0)) {
pm[mc] = k; mc++; } k--; }
for( k=1;k<=10;k++ ) total += pm[k-1]; printf(\ }
(如果文本被遮住,请移动右边的滚动条。) 2,注意:
1.该源程序放在: d:\\ExamProg\\002\\test2.c
2.编译该程序时,请首先将程序中开头的功能说明注释掉或删除! 3.程序功能说明及源程序如下:
/*求200到1000之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/ #include
int prime(int x) {
int k;
for(k=2;k if(__________) break; if(k==x) return 1; else return 0; } void main( ) { int a,b,n=0; int prime(int x); for(a=200;a<=998;a++) { if(prime(a)==1) { b=a+2; if(__________) n++; } } printf(\} (如果文本被遮住,请移动右边的滚动条。) 3,计算下面公式的值。T=1/1!+1/2!+1/3!+??+1/m! 当m=10时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)