C语言模拟试题及答案一、判断题(10*2.5分=25分)1.在C程序中,注释部分从/*开始,到*/结束。
Yes 2.switch语句中,case后面既可以跟常量,也可以跟已赋值的变量。
NO注:case后面的值不能为变量3一个C语言程序中包含有多个函数时,按书写顺序从上到下执行各函数。
NO注:执行顺序是从main()函数开始,按照调用顺序执行各函数。
4.若一个函数的返回类型为void,则表示其没有返回值Yes 5.student_name、_name、name8和name_8都是合法标识符。
Yes 6.不对自动(auto)数组进行初始化,数值型数组隐含初值为0,字符数组隐含初值空字符'\0'NO 注:若不对auto数组进行初始化,则其初值是不可知的。
若一个static 或外部数组未进行初始化,则对数值型数组元素,初值为0,而对字符型数组元素,初值为空字符‘\0’7假设int型数组a的起始地址为2000,则元素a[3]的地址为:2000+4×2=2008。
NO注:正确答案是:2000+3*2=2006 8.结构化程序设计认为一个"好"程序主要应该是:程序短而紧凑。
NO 9.如果知道整型变量a的地址是2000,可以直接用int *pa=2000; 给指针变量pa赋值,使其指向变量a。
NO10.在C语言的if语句中,用作判断的表达式只能为逻辑表达式和关系表达式。
NO 二、单选题(30*2.5分=75分)()1.下列哪一个选项不是结构化程序三种基本结构的共同特点(C) A. 只有一个入口 B. 只有一个出口C. 没有死循环D.有分支结构()2.设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b 和c的值分别是(B) A. 2,1,2 B. 2,0,3C. 2,2,3 D.2,1,3()3.若整型变量A、B、C、D中的值依次为:1、4、3、2。
则条件表达式D<B?A:C 的值为:(A)A. 1B. 2C. 3D. 4( )4.表示数学中的关系x<y<z,在C语言中所对应的表达式是(B) A. x < y < z B. (x < y) && (y < z)C. (x < y) || (y < z)D.!(x >= y) || !(y >= z)()5.在C语言中,设x为int型变量,则执行以下语句后,x的值为(C)A. 10 B. 20C. 18D. 19P 21#include "stdio.h"void main(){int x;x=10; x=x+--x;printf("%d",x);}( )6.在C语言中,执行下面语句后,输出的结果是(C) int x=10,y=3; printf("%d\n",y=x/y);A. 0B. 1C. 3 D.不确定的值()7.在C语言中,假定所有变量均已正确说明,下列程序段运行后x的值是(B) a=b=c=0;x=99;if(!a) x=9;else x=3;A. 99B. 9C. 100D.3( )8.在C语言中,执行语句:for (i=1; i<4; i++);后,变量i的值是(B)A. 3B. 4C. 5D.不定()9.设int k;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是(A) A. 无限和0 B. 0和无限C. 都是无限D.都是0( )10.执行语句printf("He question is in c:\\tools\book. exe" );其输出为(C)A. He question is in c:\\tools\book. exeB. He questionis in c: oolsook.exeC. He question is in c:\toolook.exeD. 出错,不能输出( )11.函数float AAA(float x,int y){ float i,fc=1;while( y>0 ){fc *=x; y--;}return fc;}的功能是(A) A. 求x的y次方 B. 求y的x次方C. 求x*yD.求x和y的阶乘之和( )12.对两个静态字符数组A和B进行如下初始化static char A[]="ABCDEF";static char B[]={'A','B','C','D','E','F'};则下列叙述正确的是(D)A. A和B完全相同B. A和B只是长度相等C. A和B不相同,A是指针数组D. A数组长度比B数组长( )13.对于for(表达式1;;表达式3)可理解为(B)A. for(表达式1;0;表达式3)。
运行0次B. for(表达式1;1;表达式3)。
无限循环至无穷大C. for(表达式1;表达式1;表达式3)。
D. for(表达式1;表达式3;表达式3)。
(main(){int i;for(i=0;i++;i++)printf("%d\n",i);})P 61( )14.C语言中,FILE结构指针变量名stdin代表哪类文件(D) A. 标准错误输出 B. 标准输出C. 标准打印D. 标准输入( )15下列循环体执行( )次(D) k=70;while(k=0) k-=1;A. 70次B. 69次C. 无限次D. 0次( )16.有以下程序#define P 3void F(int x){return(P*x*x);}main(){printf("%d\n",F(3+5));}程序运行后的输出结果是(D) A. 192 B. 29C. 25D. 编译出错( )17.在一个源程序文件中定义的全局变量的有效范围为(C)A. 一个C程序的所有源程序文件B. 该源程序文件的全部范围C. 从定义处开始到该源程序文件结束D.函数内全部范围( )18.有以下程序main(){int p[3]={11,12,13},i=0,j=0;while(i++<2) if(p[i]%2) j+=p[i];printf("%d\n",j);}程序运行后的输出结果是(A) A. 13 B. 24C. 11D. 36( )19.以下能正确定义一维数组的选项是(D)A. int a[5]={0,1,2,3,4,5};B. int a[]=(0,1,2,3,4,5);C. char a={'A','B','C'};D.char a[5]="0123";( )20.与定义char c[]={"GOD"};不等价的是(D)A. char c[]="GOD";B. char c[]={'G','O','D','\0'};C. char c[5]={'G','O','D','\0'};D. char c[3]={"GOD"};( )21.char c[5]={‘a’,’b’,’\0’,’c’,’\0’};printf(“%s”,c);(B)A.‘a’’b’B. abC. ab cD. a,b( )22.设char Q='a', *p=&Q;下面说法中错误的是(C) A. *p='a' B. &*p=&QC. &p=&QD. *&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("%d,",*p);程序运行后的输出结果是(A) 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;,下面均代表地址的一组选项是(C) A. a,p,&*a B. *&a,&a,*pC. &a,p,&*pD. *&p,*p,&a( )25.设有语句:int a[10],*p =a;,则下面的语句中,不正确的是(D) A. p=p+1; B. *p=*p+1;C. a[0]=a[0]+1;D. a=a+1;( ) 26.当int类型长度为2字节时,则类型unsigned int的值域范围为(D)A. 0至255B. -256至255C. -32768至32676D. 0至65535( )27.有如下程序:#include <stdio.h>int b;void f(){ int t2; t2=b*3; b=100; }void main(){ int a=2;b=4; f1();}叙述正确的是(D)A. a和b都是静态变量。
B. a是静态变量,b是动态变量。
C. a和b都是全局变量。
D. a是局部变量,b是全局变量。
( )28.下面的for循环最多可执行____次。
(A) for(x=0,y=0;(y!=99)&&(x<4);x++);A. 4次B. 5次C. 99次D. 0次( )29.下列判断char类型变量C1是否为数字的表达式中,哪个表达式最简单且正确? (C) A. '0'<=C1<='9' B. (C1>='0')&&(C1<='9')C. (C1>=0)&&(C1<=9)D. ('0'<=C1)||('9'>=C1) ( )30.若有以下的说明,则对初值中字符'a'的引用方式为___。
(D) static struct{ char ch;double x;char t;}c[2][2]={{{'a',35,'b'},{'c',45,'d'},{'a',86, 'm'}}};A. c.chB. c[0][1].chC. c[1][1].chD. c[0][0].ch。