C语言自测题
- 格式:doc
- 大小:451.43 KB
- 文档页数:36
c语言测试题目及答案一、选择题(每题2分,共20分)1. 下列哪个关键字不是C语言的控制语句?A. ifB. switchC. whileD. loop答案:D2. C语言中,一个整型变量int占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 在C语言中,以下哪个运算符用于计算两个数的乘方?A. *B. /C. ^D. %答案:C4. 下列哪个函数用于计算一个数的绝对值?A. abs()B. max()C. min()D. pow()答案:A5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. {"Hello World"}D. ["Hello World"]答案:A6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;答案:B7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction();C. void myFunction(int x, int y) {}D. int myFunction(int x, int y);答案:A8. 在C语言中,以下哪个是正确的递归函数调用?A. func(5);B. func(func(5));C. func(func(5, 3));D. func(5, 3);答案:B9. 下列哪个是C语言中合法的变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D10. 在C语言中,以下哪个是正确的结构体声明?A. struct Person { int age; char name[50]; };B. struct { int age; char name[50]; };C. Person { int age; char name[50]; };D. Person struct { int age; char name[50]; };答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义一个函数的关键字是________。
基础篇(一~五单元)自测题一 . 基础知识题1. 按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是()。
A. 大写字母B. 连接符C. 数字字符D. 下划线2. 对于一个正常运行的C 程序,以下叙述中正确的是()。
A. 程序的执行总是从main 函数开始,在main 函数结束B. 程序的执行总是从程序的第一个函数开始,在main 函数结束C. 程序的执行总是从main 函数开始,在程序的最后一个函数中结束D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束3. 以下合法的字符型常量是()。
A."x13'B."\018"C."65"D."\n"4. 下列运算符中,优先级最高的是()。
A.++B.%C.* (算术乘法)D.=5. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A. k++B. k+=1C.++kD. k+16. 设变量均已正确定义,若要通过scanf("%d%c%d%c",&al,&cl,&a2,&c2); 语句为变量al 和a2赋数值10和20,为变量cl 和c2 赋字符X 和Y。
以下所示的输入形式中正确的是(注:□代表空格字符;对于%c来说,可接受键盘输入的任何符号.) ()。
A.10□X□20□Y<回车>B.10□X20□Y<回车>C.10□X<回车〉D.10X <回车>20□Y<回车> 20Y <回车>7. 有以下程序void main(){ int x=0x2F;printf("%d\n",x);}程序运行后的输出结果是()。
A.47B. 17C.2FD. 0x2F8.以下程序输出结果为()。
《C++语言程序设计》自检自测题及解答(一)2002年07月28日宁夏电大教学处一、单选题(每小题1分,共6分)1. 由C++目标文件连接而成的可执行文件的缺省扩展名为________。
2. 在下面的一维数组定义中,哪一个有语法错误。
________A、 int a[]={1,2,3};B、int a[10]={0};C、 int a[];D、 int a[5];3. 在下面的函数声明中,存在着语法错误的是________。
A、 void BC(int a, int);B、void BD(int, int);C、void BE(int, int=5);D、int BF(int x; int y);4. 假定AB为一个类,则该类的拷贝构造函数的声明语句为________。
A、 AB&(AB x);B、 AB(AB x)C、 AB(AB&);D、 AB(AB* x)5. 对于结构中定义的成员,其隐含访问权限为________。
A、 publicB、 protectedC、 privateD、 static6.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为________。
A、 ios::inB、 ios::outC、 ios::in | ios::outD、没有二、填空题(每小题2分,共24分)1. 1.执行"cout<<43<<'-'<<18<<'='<<43-18<<endl;"语句后得到的输出结果为________。
2. 2.已知'A'~'Z'的ASCII码为65~90,当执行"char ch=14*5+2;cout<<ch<<endl;"语句序列后,得到的输出结果为________。
C语言测试题(附有详细解析)一、选择题1. 以下哪个选项是C语言的关键字?A. ifB. sizeofC. structD. include解析:C语言中,关键字是指被C语言本身定义的具有特定意义的单词。
选项A的`if`是关键字,用于条件判断;选项C的`struct`是关键字,用于定义结构体;选项D的`include`实际上是预处理指令的一部分,不属于关键字。
选项B的`sizeof`是运算符,用于计算数据类型或变量的大小。
因此,正确答案是A、C。
2. 在C语言中,以下哪个选项表示整型变量?A. charB. intC. floatD. double解析:在C语言中,`int`类型用于存储整数。
选项A 的`char`用于存储字符;选项C的`float`和选项D的`double`用于存储浮点数。
因此,正确答案是B。
3. 以下哪个选项表示逻辑运算符?A. `++`B. `--`C. `&&`D. `%`解析:逻辑运算符用于连接多个条件表达式,包括与运算符`&&`、或运算符`||`和非运算符`!`。
选项C的`&&`是逻辑与运算符。
选项A的`++`和选项B的`--`是算术运算符,用于自增和自减;选项D的`%`是取模运算符。
因此,正确答案是C。
二、填空题1. 在C语言中,定义一个整型变量`a`并赋值为10的代码是______。
解析:定义整型变量`a`并赋值为10的代码如下:```cint a = 10;```2. 以下代码的输出结果是______。
```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++ + ++x);return 0;}```解析:在C语言中,`x++`是先使用x的值,然后x自增1;`++x`是先x自增1,然后使用x的值。
因此,`x++ + ++x`的执行过程如下:- `x++`,此时x的值为5,输出5;- `++x`,此时x的值为6,输出6;- 最终输出结果为11。
单选题1. A 是构成C语言的基本单位。
A.函数B.过程C.子程序D.子例程2.能正确表示a≥10或a≤0关系表达式的是C 。
A.a>=10 or a<=10B.a>=10 | a<=0C.a>=10 || a<=0D.(a>=10,a<=0)3.以下 B 是C合法的标识符。
A.A#CB.entryC.voidD.ab*4.设c1是char类型的变量,则判断c1是否为数字字符的正确表达式是 A 。
A.(c1>=’0’)&&(c1<=’9’)B.(c1>=0)&&(c1<= 9)C.’0’<=c1<=’9’D.(c1>=’0’)||(c1<=’9’)5.在C语言中,字符型数据在内存中是以 D 形式存放的。
A.原码B.BCD码C.反码D.ASCII码6.若有以下类型说明语句:char w; int x; float y; double z,则表达式w*x+z-y结果的类型是:D 。
A.floatB.charC.intD.double7.若有int a=0,x=1; 则循环语句while(a<10) x++; a++; 循环执行 A 。
A.无限次B.不确定次C.10次D.9次8.定义int n=5;下面语句的输出结果为 B 。
printf(n%2 ? “AAA”:”BBB”);A.无输出B.AAAC.BBBD.AAABBB9.下列语句中,正确的是: DA.int a[3][]={{1},{2}}B.int a[][]={{1,2},{4},{5,6,7}};C.int a[3][]={{1,2},{4,5}};D.int a[4][3]={{1},{4,2},{0,6,7}};10.下列定义不正确的是: A 。
A.int i, *p=i;B.int *p,i;C.int i,*p=&i;D.int i,*p;11.在C语言程序中,有关函数的描述正确的是 C 。
C语言测试题(附有详细解析)一、选择题1. 下面哪个选项是C语言的合法标识符?A. voidB. 2varC. intD. _temperature解析:C语言的标识符必须以字母或下划线开头,后面可以跟字母、数字或下划线。
选项A和C是C语言的关键字,不能作为标识符。
选项B以数字开头,不合法。
选项D符合标识符的规则,是正确的。
2. 在C语言中,哪个关键字用于定义整型变量?A. floatB. intC. doubleD. char解析:在C语言中,关键字`int`用于定义整型变量。
选项A 用于定义浮点型变量,选项C用于定义双精度浮点型变量,选项D用于定义字符型变量。
因此,正确答案是B。
3. 下面哪个选项是C语言中的逻辑运算符?A.++B. &&C. ||D. !=解析:C语言中的逻辑运算符包括`&&`(逻辑与)和`||`(逻辑或)。
选项A是自增运算符,选项D是不等于运算符,因此正确答案是B和C。
二、填空题4. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++);return 0;}```解析:这段代码的输出是5。
在`printf`语句中,`x++`是后缀自增运算符,它先输出x的当前值5,然后x的值增加1。
因此,输出为5。
5. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5, y = 10;printf("%d\n", x > y ? x : y);return 0;}```解析:这段代码的输出是10。
条件运算符`?:`是一个三元运算符,它根据第一个表达式的值来选择第二个或第三个表达式。
在这个例子中,`x > y`是假的,所以输出是`y`的值,即10。
C语言在线测试题目及答案SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-第一章、第二章、第三章第一题、单项选择题(每题1分,5道题共5分)1、在以下关于C语言的叙述中,正确的说法是: BA、C语言比汇编语言快B、C语言比BASIC语言快C、C语言比BASIC语言和汇编语言都快D、C语言比BASIC语言慢2、在C语言中,不正确的常量是: BA、0xf6B、0876C、.5e-6D、 3e 23、属于低级语言的计算机语言是( )。
BA、机器语言B、汇编语言C、Java语言D、Pascal语言4、对于链接,正确的说法为()。
DA、链接是将源程序和库函数链接到一起,生成可执行程序。
B、链接是将源程序、目标程序和其他源程序链接到一起,生成可执行程序。
C、链接是将源程序、库函数和其他源程序链接到一起,生成可执行程序。
D、链接是将目标程序、库函数和其他目标程序链接到一起,生成可执行程序。
5、下列不能表示常量大写英文字母A的是()。
BA、常量:‘A’B、常量:“A”C、常量:‘\x41’D、常量:‘\101’第二题、多项选择题(每题2分,5道题共10分)1、对于16位系统中,C语言中整数 -8在内存中的错误存储形式是: BCDA、1111 1111 1111 1000B、1000 0000 0000 0000C、1000 0000 0000 1000D、1111 1111 1111 01112、下列关于C语言用户标识符的叙述中,不正确的叙述是: ACDA、用户标识符中可以出现下划线和中划线(减号)B、用户标识符中不可以出现中划线,但可以出现下划线C、用户标识符中可以出现下划线,但不可以放在用户标识符的开头D、用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头3、关于C语言程序的语句,正确的说法是( )。
BDA、一条语句只能占一行B、一行可以书写多条语句C、语句的结束标识符是句号D、建议每条语句占一行4、与汇编程序相比,C语言程序的优点包括( )。
选择题1 C语言中使用的字符常量,其起止标记符是(单引号)。
2语言中使用的字符串常量,其起止标记符是(双引号)。
3在C语言中,一条简单语句的结束符是(分号)。
4在C语言中,每条复合语句的开始标记字符为({).5不符合C语言规定的复合语句是({y=10})。
6 C语言中的选择类语句有两条,它们是(if和switch ).7在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(main)。
8 C语言程序中的基本功能模块为(函数).9 一个函数定义所包含的两个部分是(函数头和函数)。
10 一个程序文件开始使用的每条预处理命令,其首字符必须是(#).11在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对(尖括号)。
12在C语言程序中,单行或行尾注释使用的标记符为(//)。
13在C语言程序中,多行注释使用的结束标记符为(*/).14用于输出表达式值的标准输出函数是(printf())。
15在printf()函数调用的格式字符串中,每个格式符的先导字符为(%)。
16在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(int)。
17在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为(float)。
18在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为(5 )。
19程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为(逗号或回车)。
20用于从键盘上为变量输入值的标准输入函数是(scanf())。
21在scanf()函数调用的格式字符串中,每个格式符的先导字符为(%)。
22在scanf()函数调用的格式字符串中,若使用格式字符串为“%d,%d",则规定输入的两个数据之间的分隔符为(@)。
选择题1 C语言中使用的字符常量,其起止标记符是(单引号)。
2语言中使用的字符串常量,其起止标记符是(双引号)。
3在C语言中,一条简单语句的结束符是(分号)。
4在C语言中,每条复合语句的开始标记字符为({)。
5不符合C语言规定的复合语句是({y=10})。
6 C语言中的选择类语句有两条,它们是(if和switch )。
7在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(main)。
8 C语言程序中的基本功能模块为(函数)。
9 一个函数定义所包含的两个部分是(函数头和函数)。
10 一个程序文件开始使用的每条预处理命令,其首字符必须是(#)。
11在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对(尖括号)。
12在C语言程序中,单行或行尾注释使用的标记符为(//)。
13在C语言程序中,多行注释使用的结束标记符为(*/).14用于输出表达式值的标准输出函数是(printf())。
15在printf()函数调用的格式字符串中,每个格式符的先导字符为(%)。
16在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(int)。
17在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为(float)。
18在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为(5 )。
19程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为(逗号或回车)。
20用于从键盘上为变量输入值的标准输入函数是(scanf() )。
21在scanf()函数调用的格式字符串中,每个格式符的先导字符为(%)。
22在scanf()函数调用的格式字符串中,若使用格式字符串为“%d,%d”,则规定输入的两个数据之间的分隔符为(@ )。
23C语言源程序文件的扩展名为(c)。
24每个C语言程序文件的编译错误的类型有(2种)。
25每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为(warning )。
26.C语言中的循环类语句有3条,它们是(for,while,do)。
27.C语言中的跳转类语句有四条,它们是goto,return和(break,continue)。
28.当不需要函数返回任何值时,则所使用的返回类型为(void)。
29.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和(参数表)。
30.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为(#include)。
31.在#include预处理命令中,不可以包含(目标文件)。
32.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为(6)。
33.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为(2)。
34.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为(3)。
35.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为(float)。
36.在scanf()函数调用的格式字符串中,若使用格式符为“%Lf”,则对应输入的数据类型为(double)。
37.每个C程序文件在编译时可能出现有严重性错误,其对应的标识符号为(error)。
38.在VC++环境下,为运行一个程序而建立的工作区文件的扩展名为(dsp)。
39.char类型的长度为(1)。
40.常数120的数据类型为(整型)。
41.一个无符号字符类型的值域范围是(0到255)。
42数值常量0x62的表示方式为(十六进制)。
43在C语言中,表示换行符的转义字符为(\n)。
44字符串"It\'s\'"中包含的字符个数为(5 )。
45执行“printf("%c",'B'+2);”语句后得到的输出结果为(D)。
46要定义a和b为两个整型变量,则使用的定义语句为(int a,b )。
47运算符优先级最高的是(++)。
48下列数值中最小值是(35%3)。
49已知x的初值为15,则下列各表达式中的最小值为(x/=2)。
50若x=5,y=10,则计算y*=++x表达式后,y的值为(60)。
51设x和y均为逻辑值,则x && y为真的条件是(它们均为真)。
52 x<=10的相反表达式为(x>10)。
53函数pow(4,3)的值为(64.0)。
54假定x=4.6,则函数floor(x)的值为(4.0)。
55正弦函数sin48在C语言的表示为(sin(48*3.14159/180))。
56 int类型的长度为(4)。
57常数-4.25的数据类型为(双精度型)。
58一个有符号字符类型的值域范围是(-128到+127)。
59字符串"Its\40\n"的长度为(5)。
60实数340.25对应的规格化浮点数为(3.4025e2)。
61要利用const保留字定义整型常量ABC的值为10,则对应的定义语句为(const int ABC=10)。
62要利用#define命令定义ABC常量的值为100,则对应的命令格式为(#define ABC==10)。
63下列数值中最大值是(28%8)。
64在下面运算符中,优先级最高的是(!)。
65设有语句序列为“int a=12; a+=a*a;”,则执行结束后,a的值为(156)。
66在C语言中,用于比较大小的关系运算符的总数为(6)。
67 x>0 && y<=5的相反表达式为(x<=0 || y>5)。
68假定x是一个逻辑量,则(x && !x)和(x || !x)的值分别为(0和1)。
69假定x=4.6,则函数ceil(x)的值为(5.0)。
70表达式floor(2.3457*100+0.5)/100的值为(2.35)。
71若x的值为5,则执行“if(x>10) x++; else x--;”语句后,x的值为(4)。
72若x的值为-10,则执行“if(x) x++; else x--;”语句后,x的值为(-9 )。
73在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成语句(if)。
74每个C语言程序文件的编译错误的类型有()。
2. 在switch语句中,每个保留字case后面的表达式必须是()。
常量75当处理问题时的循环次数是确定的,则采用的最合适的循环方式为(for )。
76若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字(const)。
77已知'A'~'Z'的ASCII码为65~90,当执行“int x='C'+5;”语句后x的值为(72)。
78每次先进行循环条件的判断,然后再执行循环体的语句为(for和while)。
79若n的值为5,s的值为0,则执行“while(n>0) s+=n--;”语句后,s的值为(15)。
80流程控制类语句包括的3类语句为(选择、循环、跳转)。
81若i的值为0,则执行“do i++; while(i*i<10);”语句的过程中,循环体被执行的次数为(4)。
82若要结束所在函数的执行过程,返回到调用该函数所在位置,则使用的语句为(return)。
83要结束所在循环语句中循环体的一次执行,则在其中使用的语句为(continue)。
84若x的值为15,则执行“if(x>10) x++; else x--;”语句后,x的值为(16)。
85若x的值为-10,则执行“if(!x) x++; else x--;”语句后,x的值为(-11)。
86若x的值为10,则执行“switch(x%3){case 0: x++; case 1:x++; case 2: x++;}”语句后,x的值为(12)。
87若x的值为10,则执行“switch(x%3){case 0: x++; break; case 1:x++; default: x++;}”语句后,x的值为(12)。
88若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i=1共被执行的次数为(1)。
89若n的值为10,则执行“for(i=0;; i++) if(i>n/3) break;”语句后,i的值为(4)。
90若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i++共被执行的次数为(n-1 )。
91若n的值为10,则执行“for(i=0;i<n; i++) for(j=i; j<n; j++) S;”语句后,内层循环体S语句的执行总次数为(n(n+1)/2)。
92若n的值为10,则执行“while(n-->0)s+=n;”语句的过程中,循环体被执行的次数为(10 )。
93若n的值为5,s的值为0,则执行“while(n-->0) s+=n;”语句后,s的值为(10 )。
94在下列的语句中,必须以分号作为结束的语句是(do )。
95若n的值为5,s的值为0,则执行“do s+=n--; while(n>0);”语句后,s的值为(15)。
96要结束任一种循环语句或switch语句的执行,则在其中使用的语句为(break)。
97在一个数组中,数组元素a[i]前面的元素个数为(i)。
98假定一维数组的定义为“char a[8];”,则该数组所占用的存储空间的字节数为(8)。
99假定有一个定义语句为“int a[10]={3,4,2,8,6};”,则元素a[3]的值为(8)。
100在下面字符数组的定义语句中,有语法错误的是(char a[10]='5')。
101假定有一个定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(0)。
102假定二维数组的定义语句为“int* a[3][5];”,则该数组所占用的存储空间的字节数为(60)。
103使用“typedef int Integer;”语句把标识符Integer定义为一个(整数类型)。
104使用“typedef int ABC[10];”语句把标识符ABC定义为(整型数组类型)。