C语言模拟题答案
一、选择题:
1、下列哪一个选项不是结构化程序三种基本结构的共同特点: D:有分支结构
2、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是: B:2,0,3
3、若整型变量A、B、C、D中的值依次为:1、4、3、2。 则条件表达式D
4、表示数学中的关系 x 5、在C语言中,设x为int型变量,则执行以下语句后,x的值为 x=10; x=x+- -x;: C:18 6、在C语言中,执行下面语句后,输出的结果是 int x=10,y=3; printf(\,y=x/y); C:3 7、在C语言中,假定所有变量均已正确说明,下列程序段运行后x的值是 a=b=c=0;x=99; if(!a) x=9; else x=3; B:9 8、在C语言中,执行语句:for (i=1; i<4; i++);后,变量i的值是: B:4 9、设int k;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是: A:无限和0 10、执行语句 printf(\其输出为: C:He question is in c:\\toolook.exe 11、函数float AAA(float x,int y) { float i,fc=1; while( y>0 ) { fc *=x; y--;} return fc; } 的功能是: A:求x的y次方 12、对两个静态字符数组A和B进行如下初始化。 static char A[]=\ static char B[]={'A','B','C','D','E','F'}; 则下列叙述正确的是: D:A数组长度比B数组长 13、对于for(表达式1;;表达式3)可理解为: B:for(表达式1;1;表达式3) 14、C语言中,FILE结构指针变量名stdin代表哪类文件。 D:标准输入 15、下列循环体执行( )次 k=70; while(k=0) k-=1; D:0次 16、有以下程序 #define P 3 void F(int x){return(P*x*x);} main() {printf(\ 程序运行后的输出结果是 D:编译出错 17、在一个源程序文件中定义的全局变量的有效范围为 C:从定义处开始到该源程序文件结束 18、有以下程序 main() { int p[3]={11,12,13},i=0,j=0; while(i++<2) if(p[i]%2) j+=p[i]; printf(\ } 程序运行后的输出结果是 A:13 19、以下能正确定义一维数组的选项是: D:char a[5]=\ 20、与定义char c[]={\不等价的是 D:char c[3]={\ 21、对于下面程序段,执行的结果是 char c[5]={‘a’,’b’,’\\0’,’c’,’\\0’}; printf(“%s”,c); B:ab 22、设char Q='a', *p=&Q;下面说法中错误的是 C:&p=&Q 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, 24、若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是 C:&a,p,&*p 25、设有语句:int a[10],*p =a;,则下面的语句中,不正确的是 D:a=a+1; 26、当int类型长度为2字节时,则类型unsigned int的值域范围为 0至65535 27、有如下程序: #include { int t2; t2=b*3; b=100; } void main() { int a=2; b=4; f1(); } 叙述正确的是: D:a是局部变量,b是全局变量。 28、下面的for循环最多可执行________次。 for(x=0,y=0;(y!=99)&&(x<4);x++); A:4次 29、下列判断char类型变量C1是否为数字的表达式中,哪个表达式最简单且正确。 B:(C1>='0')&&(C1<='9') 30、若有以下的说明,则对初值中字符'a'的引用方式为________。 static struct { char ch; double x; char t; }c[2][2]={{{'a',35,'b'},{'c',45,'d'},{'a',86, 'm'}}}; D:c[0][0].ch 二、判断题: 1、在C程序中,注释部分从/*开始,到*/结束。T 2、switch语句中,case后面既可以跟常量,也可以跟已赋值的变量。F 3、一个C语言程序中包含有多个函数时,按书写顺序从上到下执行各函数。F 4、若一个函数的返回类型为void,则表示其没有返回值。T 5、student_name、_name、name8和name_8都是合法标识符。T 6、不对自动(auto)数组进行初始化,数值型数组隐含初值为0,字符数组隐含初值空字符'\\0'。F 7、假设int型数组a的起始地址为2000,则元素a[3]的地址为:2000+4×2=2008。F 8、结构化程序设计认为一个\好\程序主要应该是:程序短而紧凑。F 9、如果知道整型变量a的地址是2000,可以直接用 int *pa=2000; 给指针变量pa赋值,使其指向变量a。F 10、在C语言的if语句中,用作判断的表达式只能为逻辑表达式和关系表达式。F 三、综合应用题 1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 当m=10时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!) 答案:1.718 2、求[10,2000]之间能被2或3或5整除的数之和。改正程序中的错误(共3处错误)。答案:1466295 #include int sum; int i; for(i=10;i<2000;i++) if(i%2==0 && i%3==0 && i%5==0) sum=sum+i; printf(\} 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(\ } 答案:4622 4、下列程序的功能是:求出以下分数序列的前30项之和, 2/1,3/2,5/3,8/5,13/8,21/13,……请改正程序中的错误,并运行修改后程序,给出程序结果(按四舍五入保留6位小数)。结果:48.840601。(有3处错误) #include long a,b,c; clrscr(); s=0.0; a=2; b=1; for(k=1;k<=30;k++) s=s+a/b; c=a; a=a+b; b=c; printf(\结果: %lf\\n\ } 5、/*求200到1000之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/ #include 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(\} 答案:20