2023年C语言考试试题基础版.pdf
《2023年C语言考试试题基础版.pdf》由会员分享,可在线阅读,更多相关《2023年C语言考试试题基础版.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、选择题 1.在每个 C 程序中都必须包含有这样一个函数,该函数的函数名为 。A.main B.MAIN C.name D.function 2.在以下关于 C 语言的注释的叙述中,不正确的是 。A注释可用/*、*/形式表示,也可用/形式表示 B编译器在编译一个程序时,将跳过注释,不对其进行处理 C编译器在编译一个程序时,可发现注释中的单词拼写错误 D程序中注释的多少不会影响所生成的可执行文件的长度 3.以下叙述不正确的是 。A在 C 程序中,严格区分大小写字母 B一个 C 源程序有且仅有一个 main 函数 C在 C 程序中,注释只能位于一条语句的后面 D一个 C 程序总是从 main 函
2、数开始执行 4.下列合法的标识符为 A.abde+B.#KDJF C.67KDJ D.DK3_ 5.关于字符串和字符的关系正确的是 A.“A”与 A 是相同的 B.字符串是常量,字符是变量 C.“A”与 A 是不同的 D.“A ”与“A”是相同的 6.下面关于语句的说法正确的是 A.下面这两段程序的执行效果是一致的 B.空语句是只有一个分号的语句,它其实什么也不干 C.语句的构成不一定需要分号 D.语句的书写对程序的运行不起作用,因此可以随便写都可以 7.以下各标识符中,合法的用户标识符组为 。A.PAd,P#d,b-b,abc,_0123,ssiped B.cin,a10,CPP,float
3、,del_word,signed C.void,max,hiy,list,*jer if(xy)z=x;s=z*z;else z=y;s=1/(z*z);if(xy)z=x;s=z*z;else z=y;s=1/(z*z);D.a,temp,_isw,INT,keep,wind 8.字符串“”EOF=-61”的长度是 。A 8 B 9 C 12 D 非法字符串 9.数学式xsin在 C 程序中对应的不正确的表达式为 。Asqrt(sin(x)0?sin(x):-sin(x)Bsqrt(fabs(sinx)Csqrt(sqrt(sinx*sinx)Dfabs(sqrt(sin(x)10.下列 是
4、 C 语言的有效标识符?A_No1 BNo.1 C12345 Dint 11.C 语言中,表示一条语句结束的标号是 A#B;C/D 12.每个 C 程序中都必须有且仅有一个 A类 B预处理命令 C主函数 D语句 13.下列数据类型不是 C 语言基本数据类型的是 。A字符型 B整型 C实型 D数组 14.下列字符列中,可作为 C 语言程序自定义标识符是 。Aswitch Bfile Cbreak Ddo 15.运算符+、=、=、%中,优先级最低的运算符是 。A+Bb?a 大于 b:a 小于 b;printf(%sn,s1);A.a 大于 b B.a 小于 b C.1 D.输出语句有错 24.in
5、t k=10;while(k=0)k=k-1;则下面描述正确的是 。A.while 循环执行 10 次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 25.int a=1,b=2,c=2,t;while(ab)t=a;a=b;b=t;c-;printf(%d,%d,%dn,a,b,c);运行结果为 。A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1 26.int x=-1;do x=x*x;while(!x);下列说法正确的是 。A.是死循环 B.循环执行两次 C.循环执行一次 D.有语法错误 27.以下能正确计算 1*2*3*10 的程序段是 。A.d
6、o i=1;s=1;B.do i=1;s=0;s=s*i;i+;s=s*i;i+;while(i=10);while(i=10);C.i=1;s=1;D.i=1;s=0;do s=s*i;dos=s*i;i+;i+;while(i=10);while(i=10);28.以下描述正确的是 。A.由于 do-while 循环中循环体语句只是一条可执行语句,所以循环体内不能发现注释中的单词拼写错误程序中注释的多少不会影响所生成的可执行文件的长度以下叙述不正确的是在程序中严格行下列合法的标识符为关于字符串和字符的关系正确的是与是相同的字符串是常量字符是变量与是不同的与是相同的语句的构成不一定需要分号语
7、句的书写对程序的运行不起作用因此可以随便写都可以以下各标识符中合法的用户标识使用复合语句 B.do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能写分号 C.在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(“假”)的操作 D.do-while 循环中,根据情况可以省略 while 29.while 和 do-while 循环的主要区别是 。A.do-while 的循环体至少无条件执行一次 B.while 的循环控制条件比 do-while 的循环控制条件严格 C.do-while 允许从外部转到循环体内 D.do-whil
8、e 的循环体不能是复合语句 30.下面有关 for 循环的正确描述是 。A.for 循环只能用于循环次数已经确定的情况 B.for 循环是先执行循环体语句,后判断表达式 C.for 循环中,不能用 break 语句跳出循环体 D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 31.对 for(表达式 1;表达式 3)可理解为 。A.for(表达式 1;0;表达式 3)B.for(表达式 1;1;表达式 3)C.for(表达式 1;表达式 1;表达式 3)D.or(表达式 1;表达式 3;表达式 3)32.在 C 编程语言中,以下正确的描述是 。A.continue 语句的
9、作用是结束整个循环的执行 B.只能在循环体内和 switch 语句体内使用 break 语句 C.在循坏体内使用 break 语句或 continue 语句的作用相同 D.从多层循环嵌套中退出,只能使用 goto 语句 33.下面程序段 。for(t=1;t=100;t+)scanf(%d,&x);if(x0)continue;printf(%dn,t);A.当 x=0 时什么也不输出 C.cout 永远也不执行 D.最多允许输出 100 个非负整数 34.定义一个函数实现交换 x 和 y 的值,并将结果正确返回。能够实现此功能的是 。A.swap(int x,int y)int t;t=x;
10、x=y;y=t;B.swap(int*x,int*y)int t;t=x;x=y;y=t;发现注释中的单词拼写错误程序中注释的多少不会影响所生成的可执行文件的长度以下叙述不正确的是在程序中严格行下列合法的标识符为关于字符串和字符的关系正确的是与是相同的字符串是常量字符是变量与是不同的与是相同的语句的构成不一定需要分号语句的书写对程序的运行不起作用因此可以随便写都可以以下各标识符中合法的用户标识C.swap(int*x,int*y)int t;t=*x;*x=*y;*y=t;D.swap(int*x,int*y)int*t;t=x;x=y;y=t;35.若有代数式 3ae/bc,则不正确的 C
11、语言表达式是 。A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3 36.以下表达式值为 3 的是 。A.16-13%10 B.2+3/2 C.14/3-2 D.(2+6)/(12-9)37.设有说明语句,int k=7,x=12;则以下能使值为 3 的表达式是 。A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5 D.(x%=k)-(k%=5)38.若有条件表达式(exp)?A+:b-,则以下表达式中能完全等价于表达式(exp)的是 。A.(exp=0)B.(exp!=0)C.(exp=1)D.(exp!=1)39.设有以下语句:t
12、ypedef struct REC char c;int a4;REC1;则下面叙述中正确的是 。A可以用 REC 定义结构体变量 BREC1 是 struct REC 类型的变量 CREC 是 struct 类型的变量 D可以用 REC1 定义结构体变量 40.下列关于结构的语法错误的是 A结构是由用户自定义的一种数据类型 B结构中可设定若干个不同数据类型的成员 C结构中成员的数据类型可以是另一个已定义的结构 D在定义结构时,可以为成员设置默认值 41.以下关于结构体的叙述中,错误的是 。A结构体是一种可由用户构造的数据类型 B结构体中的成员可以具有不同的数据类型 C结构体中的成员不可以与结
13、构体变量同名 D结构体中的成员可以是指向自身结构的指针类型 42.说明一个结构体变量时,系统分配给它的内存是 。A各成员所需内存量的总和 B结构中第一个成员所需内存量 C成员中占内存量最大者所需的容量 D结构中最后一个成员所需内存量 发现注释中的单词拼写错误程序中注释的多少不会影响所生成的可执行文件的长度以下叙述不正确的是在程序中严格行下列合法的标识符为关于字符串和字符的关系正确的是与是相同的字符串是常量字符是变量与是不同的与是相同的语句的构成不一定需要分号语句的书写对程序的运行不起作用因此可以随便写都可以以下各标识符中合法的用户标识43.设有以下说明语句:struct stu int a;f
14、loat b;stutype;则下面的叙述不正确的是 。Astruct 是结构体类型的关键字 Bstruct stu 是用户定义的结构体类型名 Cstutype 是用户定义的结构体类型名 Da 和 b 都是结构体成员名 44.若有如下定义 struct data int x,y;test1=10,20,test2;则以下赋值语句中错误的是 。A.test2=test1;B.test2.x=test1.x;C.test2.x=test1.y D.test2=30,40;45.以下对结构体变量 stu1 中成员 age 的非法引用是 。struct student int age;int num;
15、stu1,*p;p=&stu1;A.stu1.age B.student.age C.p-age D.(*p).age 46.当说明一个共用体变量时,系统分配给它的内存是 。A.各成员所需内存量的总合 B结构中第一个成员所需内存量 C成员中占内存量最大者所需的容量 D结构中最后一个成员所需内存量 47.以下对 C 语言中共用体类型数据的叙述正确的是 。A可以对共用体变量名直接赋值 B一个共用体变量中可以同时存放其所有成员 C一个共用体变量中不能同时存放其所有成员 D共用体类型定义中不能出现结构体类型的成员 48.若有以下定义和语句:union data int i;char c;float f
16、;a;int n;则以下语句正确的是 。Aa=5;B.a=2,a,1.2 C.printf(“%dn”,a);D.n=1;49.设有以下说明,则下面不正确的叙述是 。发现注释中的单词拼写错误程序中注释的多少不会影响所生成的可执行文件的长度以下叙述不正确的是在程序中严格行下列合法的标识符为关于字符串和字符的关系正确的是与是相同的字符串是常量字符是变量与是不同的与是相同的语句的构成不一定需要分号语句的书写对程序的运行不起作用因此可以随便写都可以以下各标识符中合法的用户标识union int i;char c;float f;un;A.un 所占的内存长度等于成员 f 的长度 Bun 的地址和它的成
17、员地址都是同一地址 Cun 可以作为函数参数 D不能对 un 赋值,但可以在定义 un 时对它初始化 50.C 语言共用体类型变量在程序运行期间 A所有成员一直驻留在内存中 B只有一个成员驻留在内存中 C部分成员驻留在内存中 D没有成员驻留在内存中 51.使用 typedef 定义一个新类型的正确步骤是 。A(2)、(4)、(1)、(3)B.(1)、(3)、(2)、(4)C(2)、(1)、(4)、(3)D.(4)、(2)、(3)、(1)(1)把变量名换成新类型名(2)按定义变量的方法写出定义体(3)用新类型名定义变量(4)在最前面加上关键则 typedef 52.下面对 typedef 的叙述
18、中不正确的是 。A用 typedef 可以定义各种类型名,但不能用来定义变量 B用 typedef 可以增加新类型 C用 typedef 只是将已存在的类型用一个新的标识符来代表 D使用 typedef 有利于程序的通用和移植 53.下面试图为 double 说明一个新类型名 real 的语句中,正确定是 。Atypedef real double;B.typedef double real;C.typedef real=double;D.typedef double=real;54.下面能正确进行字符串赋值操作的是 。A.char s5=“ABCDE”;B.char s5=A,B,C,D,E
19、;C.char*s;s=“ABCDE”;D.char*s;scanf(“%s”,s);55.下面程序段的运行结果是 。char*s=”abcde”;s+=2;printf(“%d”,s);A.cde B.字符 c C.字符 c 的地址 D.无确定的输出结果 56.下面程序段的运行结果是 。char str=”ABC”,*p=str;发现注释中的单词拼写错误程序中注释的多少不会影响所生成的可执行文件的长度以下叙述不正确的是在程序中严格行下列合法的标识符为关于字符串和字符的关系正确的是与是相同的字符串是常量字符是变量与是不同的与是相同的语句的构成不一定需要分号语句的书写对程序的运行不起作用因此可以
20、随便写都可以以下各标识符中合法的用户标识printf(“%dn”,*(p+3);A.67 B.0 C.字符 C 的地址 D.字符 C 57.下面程序段的运行结果是 。char a=”language”,*p;p=a;while(*p!=u)printf(“%c”,*p-32);p+;A.LANGUAGE B.language C.LANG D.langUAGE 58.有如下说明语句,则以下不正确的叙述是 。char a=”It is mine”;char*p=”It is mine”;A.a+1 表示的是字符 t 所在存储单元的地址 Bp 指向另外的字符串时,字符串的长度不受限制 Cp 变量中
21、存放的地址值可以改变 Da 中只能存放 10 个字符 答案:1A 2C 3C 4D 5C 6B 7D 8A 9B 10A 11B 12C 13D 14B 15C 16B 17A 18D 19A 20C 21D 22B 23A 24C 25D 26C 27C 28C 29A 30D 31B 32B 33D 34C 35C 36B 37.D 38.B 39.D 40.D 41.C 42.A 43.C 44.D 45.B 46.C 47.C 48.B 49.C 50.B 51.C 52.B 53.B 54.C 55.C 56.B 57.C 58.D 二、填空题 1.程序的三种基本的控制结构是:、。2
22、.C 语言中的每条基本语句以 作为结束符,每条复合语句以 作为结束符。3.关系表达式 x+y5 的相反表达式为 。4.下面的程序段中循环体的执行次数是 。a=10;b=0;dob+=2;a-=2+b;while(a=0);5.下面程序段的运行结果为 。x=2;发现注释中的单词拼写错误程序中注释的多少不会影响所生成的可执行文件的长度以下叙述不正确的是在程序中严格行下列合法的标识符为关于字符串和字符的关系正确的是与是相同的字符串是常量字符是变量与是不同的与是相同的语句的构成不一定需要分号语句的书写对程序的运行不起作用因此可以随便写都可以以下各标识符中合法的用户标识doprintf(*);x-;wh
23、ile(!x=0);6.已知 int a32=3,2,1;则表达式“a00/a01”的值是 。7.若用数组名作为函数调用时的实参,则实际上传递给形参的是 。8.如果一个函数无返回值,定义它时函数类型应是 。9.预处理命令以 开头。10.指针类型变量用于存储 ,在内存中它占有一个存储空间。11.赋值语句在执行时先计算 ,再将该值转换成与 一致的值,并将值赋给左部变量。12.在程序中 else 总是与 的 if 配对,而不管程序的书写格式如何。13.在函数中使用 语句返回值。14.函数的形参在未被调用前 分配空间,函数形参的 要和实参相同。15.函数调用一般分 、,前者的特点是形参和实参各有独立的
24、存储空间,形参的存储空间在函数被调用时才分配,形参内容的变化不影响实参,后者的特点是形参实参共用一个存储空间,形参内容的改变可以改变实参值。16.在传值调用中,实际是把实参的 传给形参。17.int a3=3;则 a2=。18.int a3=1,3,5,7;则 。19.数组由 和 构成,其数组元素的数据类型是 。20.声 明 长 度 为10的float型 数 组a,且 初 始 化 为0的 语 句是:。21.指针是存放一个变量的 的变量。22.当数组名作形参时,相当于 。23.要访问数组元素可以采用 、。24.定义一个指针 p,它指向一个有 6 个整型元素的一维数组,定义语句为 。25.定义一个
25、指针数组 p,它有4 个元素,每个指针指向一个整型数据,定义语句为 。26.指针可以指向字符串,在定义一个字符型指针时,可以给它初始化,目的是把字符串的 放入指针变量。27.指针可以指向函数,这时它所指的是函数的 。28.C 语言的源程序必须通过 和 后,才能被计算机执行。29.C 语言源程序文件的后缀是 ;经过编译后,生成文件的后缀是 ;经过连接后,生成文件的后缀是 。30.在 C 语言中,表示逻辑“真”值用 。发现注释中的单词拼写错误程序中注释的多少不会影响所生成的可执行文件的长度以下叙述不正确的是在程序中严格行下列合法的标识符为关于字符串和字符的关系正确的是与是相同的字符串是常量字符是变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 语言 考试 试题 基础
限制150内