C语言程序设计-模拟题

发布时间:2023-08-04 00:08:24浏览次数:90
《C 语言程序设计》模拟题一、单项选择题1.下面程序运行的结果是void ss(char *s,char t) { while(*s) { if(*s= =t) *s=t-‘a’+’A’; s++;}}void main(){ char str1[100]=”abcddfefdbd”,c=’d’; ss(str1,c); printf("%s\n",str1);}A.ABCDDFEFDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd[答案]:B 2.C 语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A.地址传递B.单向值传递C.由实参传给形参,再由形参传给实参D.由用户指定传递方式[答案]:B 3.C 语言中的标示符只能由字母,数字和下划线三种字符组成,且第一个字符( )A.必须是字母B.必须是下划线C.必须是字母或下划线D.可以是字母或数字或下划线中的任意一种[答案]:C 4.不能把字符串:"good!"赋给数组 b 的语句是A.char b[10]={’g’,’o’,’o’,’d’,’!’};B.char b[10];b="good!";C.char b[10];strcpy(b, "good!") ;D.char b[10]="good!";[答案]:B 52.下列说法中正确的是A.结构体变量可以作为一个整体进行其值得输入和输出B.结构体成员项不可以是结构体C.结构体成员项可以是结构体或其他任何 C 语言的数据类型D.结构体变量和结构体是相同的概念[答案]:C 53.下面程序的输出结果是void main{ int i=011,j=11; printf("%d,%d\n",++i,j--);}A.10,11B.12,10C.11,11D.10,9[答案]:A 54.下面程序的执行结果为 void main() {int x=20,y; y=++x; y+=x; printf(”%d,”y); y=x--; y+=x; printf(”%d,”y); }A.42,41B.42,42C.40,41D.42,40[答案]:A 55.下面程序段的运行结果是char c[5]={‘a’,’b’,’\0’,’c’,’\0’};printf("%s",c);A.‘a’’b’B.abC.ab cD.abc [答案]:B 56.下面哪项是构成 C 语言的基本单位A.函数B.过程C.子程序D.子例程[答案]:A 57.下面说法正确的是,在 C 语言中A.实参和与其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只有当实参和与其对应的形参同名时才共占用存储单元D.形参是虚拟的,不占用存储单元[答案]:A 58.下面说法中正确的是:在 C 语言程序中A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和调用均不可以嵌套D.函数的定义和 调用均可以嵌套[答案]:B 59.一个变量的指针是指A.该变量的值B.该变量的地址C.该变量的变量名D.该变量的标志[答案]:B 二、判断题1.C 语句以句号结束.[答案]:F 2.‘’中只能放一个字符.[答案]:T 3.const 表示常变量.[答案]:T 4.C 程序的三种基本结构是:顺序,选择,函数.[答案]:F 5.C 程序可以有多个输入. [答案]:T 6.C 语句以分号结束.[答案]:T 7.C 语言数组中以列优先.[答案]:F 8.double 表示单精度实型.[答案]:F 9.float 型数据在内存中占 2 个字节.[答案]:F 10.int 表示整型.[答案]:T 11.static 是自动型变量.[答案]:F 12.变量不能定义在函数之外.[答案]:F 13.定义 int a[][3]={1,2,3,4,5,6};是否正确?[答案]:T 14.格式声明%d 表示整型.[答案]:T 15.函数递归就是调用该函数本身.[答案]:T 16.函数体分为声明部分和执行部分[答案]:T 17.库函数可以是系统提供的,也可以是用户自己编写的.[答案]:F 18.如有:float a[10];定义是否正确?[答案]:T 19.如有:int a[5]={1,2,3,4,5};那么 a[1]=1?[答案]:F 20.实参不能是表达式.[答案]:F 21.实参可以是变量.[答案]:T 22.数组的下标可以是常量,也可以是变量.[答案]:F 23.数组元素不能作为函数的实参.[答案]:F 24.数组中的元素的数据类型可以不相同.[答案]:F 25.形参可以是数组名.[答案]:T 26./*和*/不必成对使用.[答案]:F 27.”"中只能放一个字符.[答案]:F 28.C 程序必须有一个或多个输出.[答案]:T 29.C 程序可以没有输出.[答案]:F 30.C 程序中,可以有一个主函数和若干个子函数组成.[答案]:T 31.C 语言数组下标习惯上从 0 开始.[答案]:T 32.C 语言中既有字符变量,也有字符常量.[答案]:F 33.double 型数据在内存中占 8 个字节.[答案]:T 34.i++表示自身加 1.[答案]:T 35.m=max(a,max(b,c));书写正确吗?[答案]:T 36.按变量的生存期可分为:动态存储和静态存储.[答案]:T 37.变量可分为局部变量和全局变量.[答案]:T 38.定义 int a[2][]={1,2,3,4,5,6};是否正确?[答案]:F 39.函数必须有返回值.[答案]:F 40.函数递归调用一般用 if-else 实现.[答案]:T 41.函数中的参数分为实参和形参.[答案]:T 42.两个字符串所包含的字符个数相同时,才能比较字符串.[答案]:F 43.如有:int a[3][4];定义是否正确?[答案]:T 44.如有:int a[n];定义是否正确?[答案]:F 45.实参传递给形参的可以是地址.[答案]:T 46.实参可以是常量.[答案]:T 47.数组的长度可以改变.[答案]:F 48.数组元素可以作为函数的形参.[答案]:F 49.所有的 C 程序都需要写在一个函数里. [答案]:F 50.形参只能是变量.[答案]:F 51.//表示程序结束.[答案]:F 52.c=2*max(a,b);书写正确吗?[答案]:T 53.C 程序从主函数开始,从主函数结束.[答案]:T 54.C 程序可以没有输入.[答案]:T 55.C 语句以逗号结束.[答案]:F 56.C 语言数组中以行优先.[答案]:T 57.C 语言中字符变量用字符数组来表示.[答案]:T 58.float 表示双精度实型.[答案]:F 59.int a,b;在定义时省略了 auto.[答案]:T 60.printf("%%d",1/3);输出 0.333333.[答案]:F 61.变量必须先定义,后使用.[答案]:T 62.定义 int a[2][]={{1,2},{3,4}};是否正确?[答案]:F 63.多维数组名不能用作函数的形参.[答案]:F 64.函数不可以嵌套定义,但可以嵌套调用.[答案]:T 65.函数可以嵌套定义,但不能嵌套调用.[答案]:F 66.可以在定义数组的同时赋初始值.[答案]:T 67.确定性不是算法的特征.[答案]:F 68.如有:int a[5]={1,2,3,4,5};定义是否正确?[答案]:T 69.如有:int n=5;int a[n];定义是否正确?[答案]:F 70.实参传递给形参的可以是数值.[答案]:T 71.实参只能是变量.[答案]:F 72.数组名可以作为函数的实参.[答案]:T 73.数组中的下标用[]括起来.[答案]:T 74.同一数组的元素具有相同的数组名.[答案]:T 75.有穷性是算法的特征.[答案]:T 三、问答题1.&&,||,!谁的优先级别最高?[答案]:!2.? :是什么运算符?[答案]:条件运算符.3.“++"和"="谁的优先级高? [答案]:"++" 5.对 for(表达式 1;;表达式 3)可以理解为A.for(表达式 1;0;表达式 3)B.for(表达式 1;表达式 1;表达式 3)C.for(表达式 1;1;表达式 3)D.for(表达式 1;表达式 3;表达式 3)[答案]:C 6.面向对象程序设计将数据与( ) 放在一起,作为一个相互依存不可分割的整体来处理.A.对数据的操作B.信息C. 数据隐藏D.数据抽象[答案]:A 7.若二维数组 a 有 m 列,则在 a[i][j]前的元素个数为A.j*m+iB.A. i*m+jC.i*m+j-iD.i*m+j+1[答案]:B 8.若有 int *p,a[10];p=a; ,则下列写法不正确的是A.p=a+2B.a++C.*(a+1)D.p++[答案]:B 9.若有以下定义:char s[10]="include“,*p=s;,则不能代表字符‘u’的表达式为A.s[4]B.s+4C.*(p+4)D.p+=4,*p;[答案]:B 10.设 c1,c2 均是 char 型变量,则下面不正确的函数调用为A.scanf("c1=%cc2=%c”,&c1,&c2);B.getchar();C.putchar(c2);D.putchar(c1,c2);[答案]:D 11.说明一个结构体变量时,系统分配给它的内存是A.各成员所需内存量的总和 B.结构体中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构体中最后一成员所需内存量[答案]:A 12.下列数据中,合法的 8 进制常量是() .A.473B.931C.0abcD.10[答案]:D 13.下面不正确的说法是:C 语言规定A.实参可以是常量,变量或表达式B.形参可以是常量,变量或表达式C.实参传递给形参时,要求实参必须有确定的值D.形参应与其对应的实参类型可以不一致[答案]:B 14.以下说法中正确的是A.C 语言程序总是从第一个定义的函数开始执行B.在 C 语言程序中,要调用的函数必须在 main 函数中定义C.C 语言程序总是从 main 函数开始执行D.C 语言程序中的 main 函数必须放在程序的开始部分[答案]:C 15.下面程序段的输出结果是 char c1=’6’,c2=’0’;printf(”%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2);A.因输出格式不合法,输出出错信息B.6,0,6,102C.6,0,7,6D.6,0,5,7[答案]:B 16.下面的循环结构中,不是无限循环的是A.for( i=1;;i++)B.i=1;while(i--)C.i=1;do{printf(”%d”,i); i++;} while(--i);D.for(i=0;i;i++)[答案]:D 17.下面是对 s 的初始化,其中不正确的是A.char s[5]={"abc"}; B.char s[5]={‘a’,’b’,’c’};C.char s[5]=””;D.char s[5]=”abced”;[答案]:D 18.下面说法中不正确的是A.一个 C 源程序可有一个或多个函数组成B.一个 C 源程序必须包含一个 main 函数C.C 程序的基本组成是函数D.在 C 程序中,注释语句只能位于一条语句的后面[答案]:D 19.下面四个选项当中,均是关键字的是( )A.auto,enum,includeB.switch,typedef,continueC.signed,union,scanfD.if,struct,type[答案]:B 20.已知 ch 是字符型变量,下面不正确的赋值语句为A.ch=’a+b’;B.ch=’\0’;C.ch=’7’+’9’;D.ch=5+9;[答案]:A 21.以下正确的说法是A.定义函数时,形参的类型说明可以放在函数体内B.return 后边的值不能为表达式C.如果函数值的类型和返回值类型不一致,以函数值类型为准D.如果形参与实参的类型不一致,以函数值类型为准[答案]:C 22.C 语言规定,在一个源程序中,main 函数的位置A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后[答案]:C 23.sizeof(double)是一个( )表达式.A.整型B.双精度C.不合法 D.函数调用[答案]:A 24.不正确的定义语句是A.double x[5]={2.0,4.0,6.0,8.0,10.0};B.int y[5]={0,1,3,5,7,9};C.char c1[]={’1’,’2’,’3’,’4’,’5’};D.char c2[]={’\x10’,’\x0a’,’\x08’};[答案]:B 25.对 if 语句中表达式的类型,下面正确的说法是A.必须是关系表达式B.必须是关系表达式或逻辑表达式C.可以是任意表达式D.必须是关系表达式或算术表达式[答案]:C 26.能正确表示 a 和 b 同时为正或同时为负的表达式是A.(a>=0||b>=0)&&(a<0||b<0)B.(a>=0||b>=0)&&(a<0&&b<0)C.(a+b>0)&& (a+|b<0)D.a*b>0[答案]:D 27.若使用以为数组名作函数实参,则下面说法中正确的是A.在被调函数中,与该实参相对应的形参必须是同类型的数组名或指针变量B.实参数组类型与形参数组类型可以不匹配C.在被调函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致[答案]:A 28.若有定义:int a[10],*p=a;,则 p+5 表示A.元素 a[5]的地址B.元素 a[5]的值C.元素 a[6]的地址D.元素 a[6]的值[答案]:A 29.若有以下结构体定义,则正确的引用和定义是 struct example { int x; int y;} v1;A.example.x=10B.example v2; v2.x=10;C.struct v2; v2.x=10;D.struct example v2={10,5};[答案]:B 30.设 p1,p2 是指向同一个字符串的指针变量,c 为字符变量,则不能正确执行的赋值语句为A.c=*p1+*p2;B.p2=c;C.p1=p2;D.c=(*p1)*(*p2);[答案]:B 31.为了表示关系 x>=y>=z,下面 C 语言表达式中正确的是A.(x>=y)&&(y>=z)B.(x>=y)and(y>=z)C.(x>=y>=z)D.(x>=y)&(y>=z)[答案]:A 32.下列数据中属于"字符串常量"的是( ).A.abgB."sdfk"C.‘dfk’D.‘a’[答案]:B 33.下面程序的输出结果是void main() { int i=010,j=10; printf("%d,%d",i++,++j); }A.10,11B.11,11C.8,11D.8,10[答案]:C 34.下面程序的运行结果是void main() {int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf("%d,%d",a,b);}A.6,1B.2,1 C.6,0D.2,0[答案]:B 35.下面程序段的运行结果是char c[]=”\t\b\\\0will\n”;printf("%d“,strlen(c));A.14B.3C.9D.字符串中有非法字符,输出值不确定[答案]:B 36.下面关于 for 循环的正确描述是A.for 循环只能用于循环次数已经确定的情况B.for 循环中是先执行循环体语句,后判断表达式C.在 for 循环中,不能用 break 语句跳出循环D.for 循环的循环体可以包含多条语句,但必须用花括号括起来[答案]:D 37.下面是对象概念的描述中,( )是错误的.A.对象 C 就是 C 语言中的结构变量B.对象代表着正在创建的系统中一个实体C.对象是一个状态和操作的封装体D.对象之间的信息传递是通过消息进行的[答案]:A 38.下面说法中正确的是A.在 C 语言中,可以使用动态内存分配技术,定义元素个数可变的数组B.在 C 语言中,数组元素的个数可以不确定,允许随即变动C.在 C 语言中,数组元素的数据类型可以不一致D.在 C 语言中,定义数组后,就确定了它能容纳的相同数据类型元素的个数[答案]:D 39.一个 C 语言程序是由A.一个主程序或若干个子程序组成B.函数组成C.若干过程组成D.若干个子程序组成[答案]:B 40.以下关于运算符优先顺序的描述中正确的是A.关系运算符<算术运算符<赋值运算符<逻辑运算符B.逻辑运算符<关系运算符<算术运算符<赋值运算符 C.赋值运算符<逻辑运算符<关系运算符<算术运算符D.算术运算符<关系运算符<赋值运算符<逻辑运算符[答案]:C 41.C 语言规定,函数返回值的类型是由A.return 语句中的表达式类型所决定B.调用该函数时的主调函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定[答案]:D 42.C 语言中,函数的隐含存储类型是() .A.autoB.staticC.externD.register[答案]:A 43.变量的指针,其含义是指该变量的A.值B.地址C.名D.一个标志[答案]:B 44.程序段如下,则正确的执行结果是int k=0; while(k++<=2); printf(“%d\n",k);A.2B.3C.4D.无结果[答案]:C 45.对于基类型相同的两个指针变量之间,不能进行的运算是A.<B.=C.+D.-[答案]:C 46.若 x,i,j 和 k 都是 int 型变量,则计算下面表达式后,x 的值为( ).x = ( i=4, j=16, k=32) A.4BB.16CC.32DD.52[答案]:C 47.若用数组名作为函数调用的实参,传递给形参的是A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数[答案]:A 48.若有条件表达式(exp)?a++:b--,则以下表达式中完全等价于表达式(exp)的是A.(exp= =0)B.(exp!=0)C.(exp= =1)D.(exp!=1)[答案]:B 49.若执行下面的程序段,则下面描述中正确的是 int k=5; while(k=1) k--;A.while 循环执行四次B.循环体执行一次C.循环体一次也不执行D.死循环[答案]:D 50.设 x,y,z,t 均为 int 型变量,则执行以下语句后,t 的值为______. x=y=z=1;t=++x||++y&&++zA.不定值B.2C.1D.0[答案]:C 51.下列常量中,合法的 C 常量是A."x-y"B.‘105’C.‘Be’D.07ff[答案]:A
文档格式: docx,价格: 5下载文档
返回顶部