当前位置:文档之家› C语言模拟题

C语言模拟题

一.选择题1、()是不正确的。

A、每条语句最后必须有一个分号;B、C源程序可由一个或多个函数组成;C、注释说明只能位于一条语句的后面;D、C源程序的基本组成单位是函数。

2、()是正确的叙述。

A、强制类型转换运算的优先级高于算术运算;B、表达式“m”+“M”是合法的;C、若变量X,Y为整型,则(a+b)++是合法的;D、表达式‘m’*‘n’是合法的;3、()为正确的变量名A. k.jeepB. intC.k_5D. –k154、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是()A、4321432143211231231232121B、432+123+021C、432112321D、4321+123+215、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b<c 的值是()A、1;B、变量j的值C、变量i的值D、06、设已定义float a=2 .0,b=3 .0 ; 使a 的值为5. 0 的表达式是()A、a-=b+2.0 B. a*=b+2.0 C. a/=b+2.0 D. a+=b7、在循环语句的循环体中,break语句的作用是()A、结束本次循环B、暂停程序的运行C、继续执行break语句之后的循环体各语句D、提前结束循环,接着执行该循环后续的语句9、若已定义,int x[4]={2,1,3};则元素x[1]的值为()A、2B、3C、1D、010、以下程序执行后的输出的结果是()int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};printf("%d\n",a[1][2]);A、7B、6C、3D、211、( )是正确的叙述.A.++3与4等价B.5/6与5.0/6.0等价C ‘a’与”A”等价D5.0/6与5/6等价12.以下叙述正确的是( )A使用带参数的宏定义时,应该说明每个参数的数据类型,B”#DEFINE PRICE=30 “定义了与30等价的符号常量PRICE,C 一个源程序只能有一个编译预处理命令行,D编译预处理命令行都必须以”#”开头.13、以下叙述错误的是( )A一个指针变量只能指向类型相同的变量.B存放地址的变量称为指针变量.C NULL可以赋值给任何类型的指针变量D两个相同类型的指针变量可以作加减运算.14、以下程序段运行后变量s的值是( )int a[ ]={ 1,2,3,4,5,6,7};int i,s=1,*p;p=&a[ 3];for (i=0; i<3;i++)s*=*(p+i);A 210 B120 C 60 D 615、设已定义:char s1[8],s2[8]=“Science”;能将字符串“Science”赋给数组s1的语句是()A、s1=s2;B、strcpy(s1,s2); C、S1=”Science”; D、strcpy(s1,s2);16、以下程序运行的结果是()#include<stdio.h>int a=2,b=3,c=5;int fun(int a,int b){ int c;c=a>b?a,b;return(c);}main(){int a=6;printf("%d",fun(fun(a,b),c));}A、6,5B、3,5C、6D、517、若有定义int a,x;则语句a=(x=8,x+8),运行后,变量a,x的值依旧为()A 16,16B 16,8C 8,8D 8,1618、以下程序运行后输出结果是()#define MIN(m,n)m<n?m:nmain( ){ int a=3,b=5,c;c=2*MIN(a,b);printf(“%d”,c);}A 3B 5C 10D 619、语句k=(m=3,n=++m);运行后,变量k,m,n的值依次为(4,4,4 )A 5,6,5B 6,6,6C 5,5,6D 6,6,520、若以定义double y ,从键盘输入一个值赋给变量y,则正确的函数调用是()A scanf(“%1f”,&y);B scanf(“%7.2f”,&y);C scanf(“%1d”,&y);D scanf(“%d”,&y);21、已定义char c=’A’, 则正确的赋值表达式是()A c=((c++)%4)B c=\0 28C c+=127--D c+1=6622、若已定义int x= -16,y= -12,z;语句z=x<=y; 运行后z的值是()A、fB、.t .C、0D、123、下面叙述正确的是( )A每行只能写一条语句, B程序中必须包含有输入语句C变量按所定义的类型存放数据 D main函数必须位于程序开头24、( )为非法字符串常量.A’egf’B””C”s”D”26’62”25. 若有定义int m=6,则正确的赋值表达式是( )A m*5=8B m*7C m-=m*6D double(-m)26、若有定义int i=1,j=9,则表达式(++j)*(i- -)的值为( )A8 B0 C9 D1027、关于C语言数据类型正确的是:A.枚举类型不是基本类型B.数组并不是构造类型C.变量必须先定义生使用D.不允许使用空类型28、若变量m,n,t 已定义且赋予初值,则正确的表达式是:A. m=int(5.6%4)B. m=m+1=t-nC. m=6+n+t,m++D. m=m/229、设整型变量x为7,使整型变量y不为2的表达式是;A. y=(++x)/3B. y=x%3C.y=x/3D. y=8-(- -x)30. 已定义int m= ‘A’; 则正确的表达式是()。

A. 2*m=m++B. m%3C. m=m-m=m-5D. m=int(-3.2)31. 以下程序运行的结果是()。

V oid main(){ int x,y,z,a;x=y=z=1; a=15;if(!x)a--;else if(y);if(z)a=3;elsea+=4;printf(“%d\n”,a);}A.19B.14C.3D.1532.正确的数组定义是()。

A int n=10,x[n]; B. int x[10]; C int N=10; int x[N]; D. int n; scanf(“%d”,&n);int x[n];33. 若有定义:int a[3][4];则表达式&a[2][1]-a的值为()。

A.9 B. 7 C。

10 D。

834.有如下定义:char str[10]={“National”};则分配给数组srt的存储空间是()个字节。

A.9 B。

10 C。

8 D。

1135.以下程序运行后输出结果是()。

V oid fun(int i){ int m=2;m=i++;printf(“%d”,m);}main(){int m=7,n=5;fun(n);printf(“%d”,m);}A. 6 7B. 6 6C. 5 5D. 5 736、有以下语句:int a[5]{0,1,2,3,4,5},i;int *p=a;0<=i<5,对a数组元素不正确的引用是()。

A.p[i] B.*(*(a=i)) C.a[p-a] D.*(&a[i])37.以下程序运行结果是()。

int a[]={1,2,3,4,5,6,7},*p=a;int n,sum=0;for(n=1;n<6;n++) sum+=p[n++]; p[1]+p[3]+p[5]printf(“%d”,sum);A.16B.27C.15D.1238. 若有定义:struct student{ int num;char name[8];char sex;float score;}stu1;则变量stu1所在占用的确内存字节数是()。

A.15 B.19 C.8 D.1639、( )为正确的字符常量A "C"B "\\"C "M"D "\24m"41、判定逻辑值为"真"的最准确叙述是( )A 大于0的数B 1C 非0的整数D非0的数42、若定义int a=1,b=2,t=3;则执行以下程序段后变量a,b,t的值分别为( )A a=2,b=1,t=1B a=3,b=1,t=2C a=2,b=1,t=3D a=2,b=1,t=243、若已定义int a;不会产生死循环的语句是( )A while(-1) {a++;}B for(a=10;a--);C for(;(a=getchar())!='\n';)D for(;;a+=2);44、( )是合法的数组定义A char str[]={48,49,50,51,52,53};B int a[5]={0,1,2,3,4,5};C char srt[]='string';D int a[]="string"45、( )关于C语言数据类型正确描述A.变量必须先定义使用B.枚举类型不是基本类型C.不允许使用空类型D.数组并不是构造类型46.()语句符合C语言语法A.float z=28,int x.y=18; B.int x y=z;C.int x=25,y=25,z=25; D.int x=25;y=25;z=25;47.()能正确表示数学关系示100<=s<300 的表达式是A.100<=s<300 B.(s>100)&(s<300)C.(s>=100)&&(s<300) D.(s>=100)and(s<300)48、错误的叙述是()A构成C语言的源程序的基本单元式算术式, B C程序必须包含一个MAIN()函数。

C一个C语言源程序可由一个或多个函数组成 D 若一条语句较长也可分写在下一行49、()为正确的变量名A jeep B-k15 Cint Dk-550、下列叙述中,错误的是()A 自增与自减运算符的结合方向为自右向左B C语言的表达式求值是其运算符的优先级先高后低的次序进行的C C语言的运算符不包含摸运算符% D关系运算符的优先级低于算术运算符51、若已定义float a=2.0,b=3.0; 使a值为5.0的表达式是()A a+=bB a*=b+2.0C a-=b+2.0Da/=b+2.052、void mian(){ int m,n=1,t=1;If(t==0)t=-t;elsem=n>=0?7:3printf(“%d\n”,m)}A 7B 1 C-1 D353、( )合法的数组定义A char str[]=’string’B int a[]=”……”C int a[5]={0,1,2…..5}D char str[]={48,49,….53}54、输出结果是()Int a[][4]={1,2……11,12} printf(“%d\n”,a[1][2]);A 3B 2 C6 D755、若定义int i=1 ,j=9 ;则表达式(++j)*(i- -)的值为()A 8B 10C 0D 956、对于整数变量a ,赋值语句a=(a%3=0?1:0);与( )语句不等价。

相关主题