C语言测试题
c语言测试题目及答案
![c语言测试题目及答案](https://img.taocdn.com/s3/m/c465e350cd1755270722192e453610661ed95abe.png)
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语言中,用于定义一个函数的关键字是________。
C语言测试题及答案
![C语言测试题及答案](https://img.taocdn.com/s3/m/7b387c53ff4733687e21af45b307e87101f6f815.png)
C语言测试题及答案C语言测试题及答案古今来许多世家,无非积德。
天地间第一人品,还是读书。
以下是店铺为大家搜索整理的C语言测试题及答案,希望能给大家带来帮助!C语言测试题及答案篇11.(A )是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。
A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。
A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。
C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C )。
A、-a1B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。
A、3axB、xC、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。
A、 %xB、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
A、print _3d db8 aBcB、Iam one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D )。
c语言测试题目及答案
![c语言测试题目及答案](https://img.taocdn.com/s3/m/6e991f787275a417866fb84ae45c3b3566ecdd54.png)
c语言测试题目及答案一、选择题1. C语言中用于表示逻辑“与”操作的关键字是()。
A. &&B. ||C. &D. &&=答案:A2. 下列哪个选项是C语言中的合法整型常量?A. 0x10FB. 0xA1BC. 8191D. -0X1答案:A3. 在C语言中,若定义了int a[5],则对数组元素的正确访问方式是()。
A. a[-1]B. a[5]C. a(2)D. a(-3)答案:B4. 下列哪个函数不能正确计算字符串长度?A. strlen()B. strlength()C. strlenf()D. strsize()答案:B5. 在C语言中,若要交换两个变量的值,以下哪种方法是正确的?A. 使用第三个临时变量进行交换B. 直接利用加减法进行交换C. 利用位运算进行交换D. 以上都是答案:D二、填空题1. 在C语言中,使用关键字________声明一个全局变量,其作用域是整个程序。
答案:extern2. C语言中的switch语句中,case标签后面必须跟________类型的表达式。
答案:整型3. 使用C语言的printf函数输出字符串时,需要使用格式说明符________。
答案:%s4. 在C语言中,定义一个指向函数的指针,需要使用关键字________。
答案:指针5. 若要在C语言中定义一个无限循环,可以使用while循环配合________关键字实现。
答案:break三、简答题1. 请简述C语言中的指针和引用的主要区别。
答:指针是一个变量,其存储的是另一个变量的地址;而引用是指针的别名,它必须在定义时初始化,且不能重新指向另一个变量。
指针可以直接被修改以指向不同的地址,而引用则总是指向初次被初始化的那个变量。
2. 解释C语言中的动态内存分配及其优点。
答:动态内存分配是指在程序运行时,根据需要通过malloc、calloc、realloc等函数动态地分配和释放内存。
C语言测试题及答案
![C语言测试题及答案](https://img.taocdn.com/s3/m/cdf1cb2ef4335a8102d276a20029bd64793e6277.png)
C语言测试题及答案一、单选题(每题3分)1、下列语言不属于计算机语言的是()A、机器语言B 、汇编语言C 、高级语言D、低级语言(正确答案)2、下列不属于C 语言的特点的是()A、是一种结构化语言B、表现能力和处理能力较差(正确答案)C 、效率高,移植性强D、可直接访问内存物理地址3、C 语言程序能够在不同的操作系统下运行,这说明其具有良好的()A 、兼容性B、操作性C 、适应性D、移植性(正确答案)4、下列关于C语言的说法,正确的是()A、C语言比其他语言高级B 、C语言源程序可以直接被计算机执行C 、C语言出现最晚,各方面优于其他语言D 、C语言是用接近人们习惯的自然语言和数学语言作为语言的表达形式(正确答案)5、以下不是C 语言中的关键字的是()A 、elseB 、shortC、true(正确答案)D 、void6、C 程序经过编译、链接后生成的可执行文件的扩展名是()A 、.cB 、.objC、.exe(正确答案)D 、.syS7、把高级语言编写的源程序转换为目标程序,需要使用()A、驱动程序B、编辑程序C、诊断程序D、编译程序(正确答案)8、C 语言程序的执行,总是起始于()A、程序中的第一条可执行语句B、程序中的第一个函数C、main()函数(正确答案)D、包含文件中的第一个函数9、以下叙述中,正确的是()A、语句是构成(正确答案)C程序的基本单位B 、一个函数可以没有参数C 、main() 函数必须放在其他函数之前D、所有被调用的函数一定要在调用之前进行定义10、构成C语言程序的基本单位是()A 、语句B、函数(正确答案)C 、过程D 、复合语句11、计算机能直接识别的语言是()A 、机器语言(正确答案)B 、汇编语言C 、C语言D 、高级语言12、下列说法错误的是()A 、C程序中的每条语句都用分号作为结束符B 、C程序中的每条命令都用分号作为结束符(正确答案)C、C 程序中的变量遵循先定义,后使用的原则D 、C程序一般以小写字母书写,并且区分大小写13、下面有关C程序的说法中,正确的是()A 、C程序由符号构成B、C 程序由标识符构成C 、C程序由函数构成(正确答案)D 、C程序由C语句构成14、C语言中所有的关键字必须()A、小写(正确答案)B、大写C 、大小写均可D 、C语言中没有保留字15、在结构化程序中应尽量避免使用的语句是()A 、whileB 、do……whileC 、forD 、goto(正确答案)16、下列是C 语言的关键字是()A 、bacB 、IntC、char(正确答案)D 、Printf17、在每一个C程序中都必须包含的函数是()A 、nameB、main(正确答案)C 、MainD 、function18、以下叙述中,正确的是()A、花括号{}只能作为函数体的定界符B 、分号是C语句之间的分隔符,不是语句的一部分C 、C程序中注释部分可以出现在程序中任意合适的地方(正确答案)D、构成C程序的基本单位是函数,所有函数的命名都可以由用户命名19、以下选项中不属于C语言的数据类型的是()A 、signed short intB 、unsigned long intC 、unsigned intD 、long short(正确答案)20、下列能实现换行功能的格式符为()A 、”\t’B、’\n’(正确答案)C 、’\a'D 、’\k’21、下列不正确的转义字符是()A 、’\W”B、\”C 、’\0'D、’074’(正确答案)22、下列正确的字符串常量是()A、”W”(正确答案)B 、'abc’C 、Olympic GamesD 、’\n'23、在C 语言中,数字029是一个()A、八进制数B、十六进制数C、十进制数D、非法数(正确答案)24、下列的变量说明中,正确的是()A 、int i=j=1;B 、double float f,d;C、double a; (正确答案)D 、char:I;25、下列是合法的用户定义标识符是()A、908B 、putcharC、P_S (正确答案)D 、double26、以下C 语言标识符合法的是()A 、-5XB、name_1 (正确答案)C 、bow-1D 、#2327、假如给变量a和b都定义为浮点型,则下列正确的定义是()A 、int a;b;B 、float a,int b;C 、float a,b; (正确答案)D 、float a;b;28、已知int a=2;,则表达式(a+’E'-’A’)*3的值是 ( )A 、8B 、12C、18(正确答案)D 、2029、下列程序中不正确的语句是()A 、main(B 、int a,b,c:C、a=22:b=33 (正确答案)D 、{c=a+c;}30、下列各项中非法的赋值语句是()A、j++:B 、++(i+3 ); (正确答案)C 、x=j>0;D、n=(i=2,i++):二、判断题(每题1分)1、计算机可以直接识别C 语言程序语句。
c语言测试题目及答案
![c语言测试题目及答案](https://img.taocdn.com/s3/m/870d447d4a35eefdc8d376eeaeaad1f347931164.png)
c语言测试题目及答案# C语言测试题目及答案## 一、选择题1. 在C语言中,以下哪个是合法的变量名?- A. 2variable- B. variable-name- C. Variable- D. variable_name答案:B. variable-name2. C语言中,以下哪个是正确的字符串常量?- A. "Hello, World!"- B. 'Hello, World!'- C. "Hello, World!" "Hello, World!"- D. "Hello, World!" 'Hello, World!' 答案:A. "Hello, World!"3. 以下哪个语句是C语言中正确的循环语句?- A. for (int i = 0; i <= 10; i++)- B. for (i = 0; i <= 10; i++)- C. while (i < 10)- D. do { ... } while (condition);答案:D. do { ... } while (condition);## 二、简答题1. 请简述C语言中数组和指针的区别和联系。
答案:数组是一种数据结构,用于存储具有相同类型的多个元素。
指针是一个变量,它存储了另一个变量的内存地址。
数组名可以作为指向数组首元素的指针使用。
数组和指针在C语言中紧密相关,但它们在使用上有所不同。
数组的大小是固定的,而指针可以指向不同类型的数据。
2. 什么是C语言中的函数?请举例说明。
答案:函数是C语言中一个执行特定任务的代码块,它可以接受参数并返回一个值。
函数的使用可以提高代码的复用性和模块化。
例如,`int add(int a, int b)` 是一个函数,它接受两个整数参数并返回它们的和。
30题C语言
![30题C语言](https://img.taocdn.com/s3/m/64841a3fa5e9856a561260d6.png)
16、编写一个程序实现功能如下:输出由字符 w 构造成的形如 W 的图形。(自
定义函数实现)
w
ww
w
w
ww
w
wwww
ww
ww
ww
ww
17、 母牛的故事 (自定义函数实现)
题目描述 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年 初也生一头小母牛。请编程实现在第 n 年的时候,共有多少头母牛? 输入描述 输入数据每个测试实例包括一个整数 n(0<n<55),n 的含义如题目中描述。 输出描述 对于每个测试实例,输出在第 n 年的时候母牛的数量。 样例输入 5 样例输出 6
题目描述 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和 一个最低分,然后计算平均得分,请编程输出某选手的得分。 输入描述 输入数据的第一个数是 n (2<n<100),表示评委的人数,然后是 n 个评委的打分。 输出描述 对于每组输入数据,输出选手的得分,结果保留 2 位小数,每组输出占一行。 样例输入 4 100 99 98 97 样例输出 98.50
4 18 78 8 11 81 12 4 84
15、 不容易的徐老汉
(用自定义函数实现) 题目描述 徐老汉这两年辛辛苦苦养了不少羊,到了今年夏天,由于高温干旱,实在没办法 解决牲畜的饮水问题,就决定把这些羊都赶到集市去卖。从黄泥板村到交易地点 要经过 N 个收费站,收费员说由于羊是 4 条腿,所以也要收过路费。 由于徐老汉没钱,收费员就将他的羊拿走一半,看到老汉泪水涟涟,犹豫了一下, 又还给老汉一只。 巧合的是,后面每过一个收费站,都是拿走当时羊的一半,然后退还一只,等到 老汉到达市场,就只剩下 3 只羊了。 你能帮忙算一下老汉最初有多少只羊吗? 输入描述 每组输入数据包含一个整数 a(0<a<=30),表示收费站的数量。 输出描述 对于每个测试实例,请输出最初的羊的数量。 样例输入 1 2 样例输出 4 6
C语言基础知识测试题 全面完整
![C语言基础知识测试题 全面完整](https://img.taocdn.com/s3/m/14eaadafcd22bcd126fff705cc17552707225e71.png)
C语言基础知识测试题全面完整c语言基础知识测试题全面完整基础知识测试题一.单项选择题1.以下不正确的c语言标识符是(d)a.abcb.abcc.a_bcd.ab.c2.以下正确的c语言标识符是(c)a.%xb.a+bc.a123d.test!3.一个c语言程序的继续执行从(a)。
a.main()函数已经开始,直至main()函数完结b.第一个函数已经开始,直至最后一个函数完结c.第一个语句已经开始,直至最后一个语句完结d.main()函数已经开始,直至最后一函数完结4.在c语言程序中,main(c)的边线()。
a.必须做为第一个函数b.必须作为最后一个函数c.任意d.必须放到它所调用的函数之后5.一个c语言程序就是由(b)。
a.一个主程序和若干个子程序共同组成b.一个或多个函数共同组成c.若干过程共同组成d.若干子程序共同组成6.c语言源程序的基本单位是(b)。
a.过程b.函数c.子程序d.标识符7.编辑程序的功能就是(a)。
a.创建并修正程序c.将c源程序编译成目标程序d.调试程序e.命令计算机继续执行选定的操作方式8.c编译程序就是(d)。
a.c语言程序的机器语言版本b.一组机器语言指.d.将c源程序编译成目标程序的程序f.由制造厂家提供更多的一套应用软件b9.不属于字符型常量的就是(d)a.'a'b.\'\\x72'10.设charch;以下恰当的赋值语句就是:(b)a.ch='123';b.ch='\\xff';c.ch='\\08';d.ch=\11.以下并使i的运算结果为4的表达式就是(d)a.inti=0,j=0;(i=3,(j++)+i);b.inti=1,j=0;j=i=((i=3)*2);c.inti=0,j=1;(j==1)?(i=1):(i=3);d.inti=1,j=1;i+=j+=2;a12.若t为double类型,表达式t=1,t+5,t++的值是(d)a.1b.6.0c.2.0d.1.0c13.设整型变量m,n,a,b,c,d均为1,继续执行“(m=a>b)&&(n=a>b)”后m,n的值就是(b)a.0,0b.0,1c.1,0d.1,1b14.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(ca.3,3,2b.3,2,2c.3,2,3d.2,3,2b15.若a=1,b=2,c=3,d=4,则条件表达式a16.设intn=7;则++n+1==9的结果是(c)a.trueb.falsec.1d.017.设a=2,b=2;则++a+b的结果就是(d),a的结果就是(b),b的结果就是(a)a.2b.3c.4d.518.设a=2,则执行b=a==!a;语句后,b的结果是(a)a.0b.1c.2d.319.建有以下语句,则c的二进制值就是()chara=3,b=6,c;c=a^b<<2;a.00011011b.00010100c.00011100d.0001100020.在c语言类型说明中,int、char、short等类型的长度是(a)a.固定的b.由用户自己定义的c.任意的d.与机器字的长度有关的二.填空题1.c语言中的标识符就可以由三种字符共同组成,它们就是、、。
c语言测试题
![c语言测试题](https://img.taocdn.com/s3/m/723f117130126edb6f1aff00bed5b9f3f90f722b.png)
c语言测试题1.题目一编写一个C语言程序,要求从键盘输入两个整数,然后输出它们的和。
解答:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数: ");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```2.题目二编写一个C语言程序,要求从键盘输入一个整数,然后判断它是否为素数。
解答:```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) { if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数: ");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```3.题目三编写一个C语言程序,要求实现冒泡排序算法对一个数组进行排序。
解答:```c#include <stdio.h>void bubbleSort(int arr[], int size) {for (int i = 0; i < size - 1; i++) {for (int j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}void printArray(int arr[], int size) {for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");}int main() {int arr[] = {5, 2, 9, 1, 3};int size = sizeof(arr) / sizeof(arr[0]); printf("排序前的数组: ");printArray(arr, size);bubbleSort(arr, size);printf("排序后的数组: ");printArray(arr, size);return 0;}```以上是三个C语言测试题的解答,分别涉及输入输出、数学运算和数组排序等。
100条经典C语言笔试题目(全)
![100条经典C语言笔试题目(全)](https://img.taocdn.com/s3/m/68e1fca6dd3383c4bb4cd289.png)
100条经典C语言笔试题目1、请填写bool , float, 指针变量与“零值”比较的if 语句。
提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。
例如int 变量n 与“零值”比较的if 语句为:if ( n == 0 )if ( n != 0 )以此类推。
(1)请写出bool flag 与“零值”比较的if 语句:【标准答案】if ( flag ) if ( !flag )(2)请写出float x 与“零值”比较的if 语句:【标准答案】const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON) 不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
(3)请写出char *p 与“零值”比较的if 语句【标准答案】if (p == NULL) if (p != NULL)2、以下为Linux下的32 位C程序,请计算sizeof 的值。
char str[] = “Hello” ; char *p = str ; int n = 10;请计算(1)sizeof (str ) = (2)sizeof ( p ) = (3)sizeof ( n ) =【标准答案】(1)6、(2)4、(3)4(4)void Func ( char str[100]) { ……;}请计算sizeof( str ) =(5)void *p = malloc( 100 ); 请计算sizeof ( p ) =【标准答案】(4)4、(5)43、long a=0x801010;a+5=?【标准答案】0x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。
4、用变量a给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10]; f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是20 + 32 = 52.当然...在某些16位编辑器下, int可能是2字节,那么结果是int2 + DATE10 + double8 = 20 6、请问以下代码有什么问题:int main(){char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;}【标准答案】没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。
C语言测试题及答案
![C语言测试题及答案](https://img.taocdn.com/s3/m/38e9d130ba1aa8114431d97c.png)
一、选择题1.语句int a=10,*point=&a; D 其值不为地址。
A. pointB. &aC. &pointD. *point2.若p为指针变量,y为变量,则y = *p++;的含义是 A A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为 BA. ”visual C++”B.str的首地址C. \nD.”v”4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为AA.T,Father,FB.Teaher,F,FatherC. Teacher,Father,FatherD.语法错,无输出5.下列说明或赋值语句,不正确的是 CA. char *p;p=”Visual C++”;B. char p1[12]={‘v’,’i’,’s’,’u’};C. char p2[12];p2=”Visual C++”D. char p3[]=”Visual”;6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 BA.p+=3*4+3B.p+=2*4+3C. p+=(3*4+3)*sizeof(int)D.p+=(2*4+3)*sizeof(int)7.语句int i,*p1,**p2;以下语句语法不正确的是 BA.p1=&i;B. p2=&i;C.p2=&p1;D.i=’\0x23’;8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能..把结点b连接到结点a之后的语句是 BC. p->next=&b;D.(*p).next=q;9.下面正确的语句是 AA. int a[3][4],(*p)[4]; p=a;B. int a[3][4],*p[4]; p=a;C. int a[3][4],*p; p=a;D. int a[3][4],**p;*p=a;10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是 BA.fp=fopen("a:\\aa.dat","ab");B. fp=fopen("a:\\aa.dat","a");C. fp=fopen("a:\\aa.dat","r+");D. fp=fopen("a:\\aa.dat","w");11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时, BA.函数返回值100B. 函数返回值150C. 函数返回二个值100和150D. 语句return 100,150;语法错.12.数组作为函数的形参时,把数组名作为实参,传递给函数的是 AA.该数组的首地址B. 该数组的元素个数C. 该数组中的各元素值D. 该数组的大小13.执行以下语句序列:则 Aenum {Sun,Mon,Tue,Wed,Thu,Fri,Sat}c1,c2; //Ac1=Mon; //Bprintf(“%d”,c1);A.输出1B.输出2C.输出0D. B行语法错14.执行以下语句序列:则 Cchar *p1=”Speaking”; //Achar *p2=”English”; //Bchar *p3=”a piece of cake”; //Cchar *str[]={p1,p2,p3}; //Dprintf(“%c”,*(str[0]+1));A.输出EnglishB.输出SpeakingC.输出pD. D行语法错二、填空题1.(2*2分=4分)下面程序的运行结果为16 、 2void main( ){static int a[3][2]={{12},{14,16},{1,2}};int *p=a[1];printf(“%d\n”,*(p+1));printf(“%d\n”,*(p+3));}2.(2*2分=4分)若有以下程序段,则*(*(b+2)+1)的值为11 ,*(*(p+1)+1)的值为7static int b[3][2]={1,3,5,7,9,11};int (*p)[2];p=b;3.(1*4分=4分)下面程序的运行结果为26#include<stdio.h>void sub(int *x,int i,int n){if(n<=i)sub(x,i,3*n);*x+=n++; //相当于*x=*x+(n++)}void main( ){int x=0;sub(&x,12,2);printf(“%d”,x);}4.(2*2分=4分)以下程序运行结果为_ Hello,world _、ello,world void main(){char *p,*q;char str[]="Hello,World\n";q = p = str;p++;printf(“%s\n”,q);printf(“%s\n”,p);}5. (1*4分=4分)以下程序运行结果是__121232343454_________ void main(){short ar[5]={1,2,3,4,5 };short * par=&ar[1];int i;for(i=0; i<4; i++){printf(“%d %d %d”,ar[i],par[i],*(ar+i));}}6.(2*2分=4分) 以下程序运行结果是__200 100_____void swap2(int *x,int *y){int t;t=*x;*x=*y;*y=t;}void main( ){ int a=100,b=200;swap2(&a,&b);printf(“%d\t%d”,a,b);}7.(3*2分=6分)void fun(int n, int *s){ int f1,f2;if(n= =1||n= =2)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;printf(“%d\t%d\n”,f1,f2);}}void main( ){ int x;fun(4,&x);printf(”x=%d\n”,x);}程序输出的第一行是1 1 第二行是4 1 最后一行是x=108. (3*2分=6分)void f(int *q1,int *q2,int *q3){*q3=*q1+*q2;}void main( ){ int i,j,a[3][3]={1,1},*p1=a[0],*p2=a[0]+1,*p3=a[0]+2;for(i=2;i<9;i++)f(p1++,p2++,p3++);for(i=0;i<3;i++){ for(j=0;j<3;j++)printf(“%d”,a[i][i]);printf(’\n’);}}程序输出的第一行是111 第二行是555 最后一行是343434 9.(2*3分=6分)int f(int x,int y){return x*y;}void main( ){ int i,j,(*fun)(int,int);fun=f;for(i=1;i<4;i++){ switch(i){case 1:case 2: j=(*fun)(i,i+1);break;case 3: j=(*fun)(i-1,i+2);break;}printf(”j=%d”,j);}}程序输出的第一行是j=2 第二行是j=6 最后一行是j=10三、完善程序1.(2*3分=6分)以下min 函数的功能是:在非空单向链表中查找结点数据域为最小的值,并作为函数返回值.链表如下.struct NODE{int data;NODE *next;};int min(NODE *first){NODE *p;int m;p=first;m=p->data;for(p=p->next;p!=NULL;p= p->next)if(m> p->data)m=p->data;return m;}2.(3*2分=6分)以下程序求二维数组的平均值float average(float (*p)[4],int n){float sum=0;for(int i=0; i<n ;i++){for(j=0;j<4;j++)sum+= (*p)[j] 或 *(*p+j) ;p++;}return sum/(n*4);}void main( ){ float score[3][4]={{56,65,70,76},{89,97,52,81},{90,99,91,86}};printf(”平均值=%f ”,average(score, 3 ));}3. (2*3.5分=7分)以下程序实现将以L 为头指针的链表逆置(设结点个数n>2),即将链表头当链表尾,链表尾当链表头。
C语言测试题(附有详细解析)
![C语言测试题(附有详细解析)](https://img.taocdn.com/s3/m/773df0dbc67da26925c52cc58bd63186bdeb920e.png)
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。
C语言测试题目
![C语言测试题目](https://img.taocdn.com/s3/m/b86980c958f5f61fb7366694.png)
一、顺序结构1.从键盘输入一个大于0的实数,编程计算并输出以该数位半径的圆面积、圆周长及球体积(取圆周率为3.14)要求输出时有适当的文字说明测试数据:输入2.5输出圆周长15.700000 圆面积19.625000 球体积为65.4166672.从键盘输入两个大于0的实数,编程计算并输出以其为长和宽的矩形的周长和面积。
要求输出时有适当的文字说明测试数据:输入 1.2 3.5输出矩形周长9.400000 矩形面积4.2000003.从键盘输入一个华氏温度值,计算并输出其摄氏温度的值。
提示:摄氏温度c=(5/9)*(f-32) f为华氏温度测试数据:输入华氏温度值100输出摄氏温度值37.7777784.从键盘输入三个实数,计算并输出它们的和及积。
测试数据:输入 1.1 2.2 3.5输出和6.800000 积8.4700005、从键盘输入三个整数,计算并输出它们的和及平均值测试数据:输入 2 5 7输出和14.000000 平均值4.6666676、输入一个三位数,依次输出该数的符号和百位、十位、个位数字。
测试数据:输入-752输出和符号- 百位7 十位5 个位2二、选择结构1.从键盘输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。
2.从键盘输入三个实数a、b、c,输出其中最大的数。
测试数据:输入5.3 6.5 2.1输出最大数6.53.从键盘输入一个正整数,判断它能否被 3或者被 5整除, 如至少能被这两个数中的一个整除则输出“yes”,否则输出“no”。
测试数据:(1)输入12 输出yes(2)输入16 输出no4.从键盘输入1到7之间的某个正整数,输出表示一星期中相应的某一天的英文单词:Monday、 Tuesday等等,用switch语句做。
测试数据:输入7输出Sunday5.从键盘输入一百分制成绩(实数),将其转换为成绩等级并输出:大于等于90分为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
C语言编程测试题
![C语言编程测试题](https://img.taocdn.com/s3/m/7a4f60e1aeaad1f346933fae.png)
3.设计一个函数测试字符串的长度
4.编写一个判断素数的函数。在主函数打印出100~1000之间的所有素数
C语言编程测试题(五)
1.编写程序输出“九九乘法口诀表”
2.编写函数实现字符串的复制
3.将10个整数输入到一个数组中,然后在数组中查找给定的整数(要求使用指针实现)
4.设计结构体类型,用来组织学生的信息(学号、姓名、性别、出生日期、成绩)
3.从键盘上输入10个整数并输出这10个数中的最大数、最小数
4.请编写函数统计输入的一行中小写字母的个数(要求使用指针实现)
C语言编程测试题(三)
1.试判断从键盘输入的正整数是否能被5和7同时整除。能则输出“yes”,否则输出“no”
2.打印出所有的水仙花数。水仙花数是一个三位数且各位上的数字立方和等于该数本身。如153是一个水仙花数
C语言编数a、b、c,要求按大小顺序打印出来
2.打印出100~1000之间的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。如6=1+2+3
3.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数
4.设计一个函数完成对10个整数进行排序(要求使用指针实现)
3.输出一个3行4列的矩阵中最大元素的值及其行下标和列下标
4.编写一个函数,对传送过来的三个数选出最大和最小数,并通过形参传回调用函数
C语言编程测试题(四)
1.计算e=1+1/1!+1/2!+?+1/n!,要求计算误差小于0.0001
2.将10个整数输入到一个数组中,然后再将其按输入顺序的逆序进行排列并输出(要求使用指针实现)
C语言编程测试题(二)
C语言在线测试题目及答案
![C语言在线测试题目及答案](https://img.taocdn.com/s3/m/e5619d0648d7c1c708a14560.png)
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语言程序的优点包括( )。
c语言基础测试题
![c语言基础测试题](https://img.taocdn.com/s3/m/b80aa104793e0912a21614791711cc7931b778d2.png)
c语言基础测试题一、C语言的源程序文件扩展名通常是什么?A. .txtB. .exeC. .cD. .java(答案)C二、以下哪个是C语言中的标准输入输出库?A. math.hB. string.hC. stdio.hD. stdlib.h(答案)C三、在C语言中,int类型数据通常占用多少个字节?A. 1B. 2C. 4D. 8(答案)C(注:这取决于具体系统和编译器,但在大多数现代系统上,int通常是4个字节)四、以下哪个是C语言中的逻辑与运算符?A. &B. &&C. |D. ||(答案)B五、在C语言中,如何表示一个常量字符串?A. 使用单引号括起来,如'hello'B. 使用双引号括起来,如"hello"C. 使用花括号括起来,如{hello}D. 使用方括号括起来,如[hello](答案)B六、以下哪个是C语言中的循环结构?A. if-elseB. switch-caseC. forD. while-do-while(注:此选项表述不严谨,但为保持原意,选择最接近的答案)(答案)C(注:实际上D也是循环结构的一种,但C是更直接且无误的答案)七、在C语言中,数组名表示什么?A. 数组的首地址B. 数组的第一个元素C. 数组的长度D. 数组的类型(答案)A八、以下哪个是C语言中的条件运算符?A. ?:B. ||C. &&D. !(答案)A九、在C语言中,如何定义一个指向整型变量的指针?A. int p;B. int p;C. *int p;D. int * p;(答案)A(注:D也是正确的,但在C语言中,通常更推荐使用A这种紧凑的格式)十、以下哪个是C语言中的标准输出函数?A. scanf()B. printf()C. getchar()D. putchar()(答案)B。
c语言智商测试题及答案
![c语言智商测试题及答案](https://img.taocdn.com/s3/m/db470af4dc3383c4bb4cf7ec4afe04a1b071b0d1.png)
c语言智商测试题及答案一、选择题1. 以下哪个是C语言中正确的数据类型?A. intB. floatC. doubleD. All of the above答案:D2. C语言中,哪个关键字用于定义一个函数?A. ifB. forC. functionD. void答案:D3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. hello worldD. "hello" "world"答案:A二、填空题4. 在C语言中,用于定义常量的宏定义命令是________。
答案:#define5. 以下代码段的输出结果是________。
```c#include <stdio.h>int main() {int a = 10;printf("%d", a++);return 0;}```答案:10三、简答题6. 简述C语言中数组的定义和初始化方法。
答案:在C语言中,数组可以通过指定数据类型和元素数量来定义。
例如,`int arr[5];` 定义了一个名为arr的整型数组,包含5个元素。
数组可以通过花括号包含初始化值来初始化,例如:`int arr[5] = {1, 2, 3, 4, 5};`。
四、编程题7. 编写一个C语言程序,实现输入两个整数,输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum);return 0;}```五、逻辑题8. 假设有一个C语言程序,其中包含以下代码段:```cint x = 10;if (x > 5) {x += 5;} else {x -= 5;}```请分析执行这段代码后,变量x的值是多少?答案:执行这段代码后,变量x的值是15。
C语言试题
![C语言试题](https://img.taocdn.com/s3/m/f5b6bdff81eb6294dd88d0d233d4b14e85243e80.png)
C语言测试一、选择题1.选出作为C语言用户标识符的一组是()A.sum,define,WORDB. a1,-abc,CASEC. a3_b3,_123,maxD.Num1,2a,m_12.已知代码如下,则B的值为()#define A 5+3 #define B A*AA.23B. 19C. 64D.不确定3.若变量已正确定义并赋值,下面符合C语言语法的表达式()A.Int 18.5%3B. a=a+=c+bC. a:=b+1D. b=c+24.将整型变量a和b中的数进行交换,下面选项中,错误的是( )t=a;a=b;b=t B. t=b;b=a;a=t C. a=a+b;b=a-b;a=a-b D. a=t;t=b;b=a5. 表达式a=3*5,a*4,a+5的值为()A. 20B. 15C. 65D. 106. 设有int a=11;则表达式a++*1/3的值为()A. 4B.11C. 12D. 37. 以下程序代码运行后输出的结果是()main(){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,5,7D. 6,0,7,68. 关于putchar()函数,错误的是()A. putchar(‘\n’);B. putchar(‘a’)C. putchar(“97”);D. putchar(65)9. 有以下语句,输入“abc”,则输出的结果是()char ch;ch=getchar();putchar(ch);0A. a b cB. aC. 97D. abc10. 已知;a=2,b=3,c=4,则以下选项中值为0的表达式为()A. c>b>aB.aC. a+1==bD. c=b+111. 以下程序代码运行输出的结果是()main (){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf(”%d\n”,d);}A. 1B. aC. zD. Z12. 以下程序代码运行后输出的结果是()main(){int i,sum;i=2;sum=0;while(i<10);{sum+=I;printf(“%d\n”,sum);}A.0B. 20C. 死循环D. 程序错误13. 以下程序代码运行后输出的结果是()main(){int i,sum;i=10;while(i>=1){sum+=i;i--;}printf(”%d\n“,sum);}A.54B. 45C. 55D. 无法确定14.以下程序代码运行后输出的结果是()main(){int n=9;While(n>5){n--;printf(”%d“,n);}}A.876B. 8765C. 9876D. 98715. 以下程序代码运行后输出的结果是()main(){int i;for(i=1;i<=40;i++){if(i++%5==0)If(++i%8==0)printf(“%d”,i);}printf(“%d”,i);}printf(“\n”);}A.24B. 32C. 40D. 516. 若:int a=0,b,*p=&b,*q=&a;则下面赋值语句中与b=a;语句等价的是()A. p=q;B. p=*q;C. *p=&n1;D. *p=*q;17. 能正确表示逻辑关系;a大于等于10或a小于等于0的C语言表达式是()A. a>=10 or a<=0B. a>=10 && a<=0C. a≥0||a≤10D. a>=10||a<=018. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()main(){ int m;scanf(“%d”,m);if(m++>5)printf(“%d”,m);elseprintf(“%d\n”,m--);}A. 7和5B. 6和3C. 6和4D. 7和419. 以下程序代码运行后输出的的结果是()#include<stdio.h>{ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case 2;c++;break;case 4;c+=2;break;}printf(“%d\n”,c);}A. 5B. 3C. 9D. 720. 下列选项中能正确定义数组的语句是()A. int year[0…2012]B. int year[ ]C. int N=2012;D. #define N 2012int year [N]; int year [N];21. 以下能对一堆数组a进行正确初始化的语句是()A. int a[5]=(0,0,0,0,0);B. int a(5)={5};C. int a [ ]={1,2,3};D. int a[ ]={‘5*1’};22. 若有定义;int a=911,*b=&a;则printf(“%d\n”,*b);输出的结果是()A. 无确定B. 912C. 911D. a的地址是23. 执行以下程序段后,a的值为()int*p,a=10,b=5;p=&a;a=*p+b;A.15B. 10C. 5D. 编译出错24. 以下程序代码运行后,a的值为()main(){ int a,k=4,m=6;int *p1=&k;int *p2=&m;a=(p1==p2);printf(“%d\n”,a);}A. 1B. 0C. 4D. 运行时出错,a无定值二、填空题1. 合法的标识符只能由________、_________和_________组成,起始字符必须为_____和_______2. 15%4结果_______15%-4结果_________-15%4结果___________。
高中c语言测试题及答案
![高中c语言测试题及答案](https://img.taocdn.com/s3/m/d721438e4bfe04a1b0717fd5360cba1aa8118c81.png)
高中c语言测试题及答案高中C语言测试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. intC. returnD. void答案:D2. 在C语言中,以下哪个选项不是合法的变量名?A. _123B. $nameC. name123D. name答案:B3. 下列哪个选项是C语言中正确的注释?A. // 这是一个注释B. /* 这是一个注释 */C. /* 这是一个注释D. // 这是一个注释答案:A4. C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. ==答案:A5. 以下哪个选项是C语言中正确的字符串定义?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str[] = "Hello", "World";答案:A6. C语言中,以下哪个选项是正确的数组定义?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr[] = {1, 2, 3, 4, 5, 6};答案:B7. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h"D. #include <stdio.h>答案:B8. C语言中,以下哪个选项是正确的条件语句?A. if (x > y)B. if (x > y) {C. if (x > y)D. if (x > y) {答案:D9. C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for (int i = 0; i < 10; i++)C. for (int i = 0; i < 10; i++)D. for (int i = 0; i < 10; i++)答案:A10. C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a, int b) { return a, b; }C. int add(int a, int b) { return a; }D. int add(int a, int b) { return a + b; }答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符常量的数据类型是________。
c语言 测试题
![c语言 测试题](https://img.taocdn.com/s3/m/5ad6538e680203d8ce2f243d.png)
第3章一、单项选择题1. 在一个C程序中(B )。
A.)main函数必须出现在所有函数之前B)main函数可以在程序任何位置出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置2.在PC机中,’\n’在内存占用的字节数是( A )。
A)1 B)2 C)3 D)43. 下列关于C语言用户标识符的叙述中正确的是(B )A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线(减号),但可以出现下划线C)用户识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头4. 以下叙述中正确的(D )。
A.)输入项可以是一个实型常量,例如:scanf("%f",3.5);B.)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C.)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f ",&f);D.)当输入数据时,必须指明变量地址,例如:scanf("%f ",&f);5.设整型变量i的值为3,则计算表达式i---i后i的值为( A )。
A)0 B)1 C)2 D)表达式出错6.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( A )。
A)6 B)9 C)8 D)表达式出错7. 以下选项中合法的用户标识符是( B )。
A)long B)_2test C)3Dmax D )A.dat8.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D )。
A)3 B)0 C) 9 D)-129.在以下一组运算符中,优先级最高的运算符是( C )。
A)<= B)= C)% D)||10.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( D )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言测试题姓名:日期:◆下面的测试题中,认为所有必须的头文件都已经正确的包含了◆数据类型char 一个字节1 byteint 两个字节2 bytelong int 四个字节4 bytefloat 四个字节4 byetdouble 八个字节8 bytelong double 十个字节10 bytepointer 两个字节2 byte第一题:main(){char *p,*q;char str[]="Hello,World\n";q = p = str;p++;printf(q);printf(p);}运行结果是什么?____________第二题:void fun(char* str1, char* str2){static char buffer[21];strncpy(buffer, str1, 10);strncat(buffer, str2, 10);*str1 = *str2;str1 = buffer;}main(){char str1[] = "ABC\n";char str2[] = "BCD\n";fun(str1, str2);printf(str1);printf(str2);}程序运行结果是__________________第三题:main(){short ar[11]={1,2,3,4,5,6,7,8,9,0,11};short* par=&ar[1];int i;for(i=0; i<10; i++){printf("%-5hd%-5hd%-5hd", ar[i], par[i],*(ar+i)); }}程序运行结果是__________________第四题:main(){short *p, *q;short ar[10]={0};p = q = ar;p++;printf("%5d", p-q);printf("%5d", (char*)p - (char*)q);printf("%5d", sizeof(ar)/sizeof(*ar));}假设sizeof(short)==2程序运行结果是__________________第五题:int sub(int a, int b){return a-b;}main(){typedef int (*SUB)(int, int);SUB psub=sub;/* psub++; */printf("%d", psub(10,(10,3)));}程序运行结果是__________________, 如果将中间注释掉的语句加上, 编译为什么会报错?第六题:main(){char* pstrar[3];int i;for(i=1; i<3; i++){pstrar[i]=" ";}strcpy(pstrar[1], "你好");/* strcpy(pstrar[0], "世界"); */printf(pstrar[2]);}假设编译器设置字符串常量为可读写,则程序结果是_____________为什么说注释掉的程序语句是不正确的?第七题:main(){char *p1,*p2;{char *pchar;char charar[100];pchar = "Hello,World!";charar = "你好,世界";p1 = pchar;p2 = charar;}printf(p1);printf(p2);}说出此程序的错误之处?第八题:main(){typedef char CA3[2][2][2];typedef CA3 *PCA3;typedef char CA2[2][2];typedef CA2* PCA2[2];CA3 ca3={’A’,’\0’,’B’,’\0’,’C’,’\0’,’D’,’\0’}; PCA3 pca3 = &ca3;PCA2 pca2={ca3, ca3+1};int i=0,j=0;for(i=0; i<2; i++){printf("\n");printf("%s\n", (char*)pca3[0][i]);printf("%s\n", (*(pca2+i))[0][1]);for(j=0; j<2; j++){putchar(*(*(ca3+i)+j)[0]);putchar(’’);}}}求输出的结果是:_____________________第九题:#include <setjmp.h>static jmp_buf buf;main(){volatile int b;b = 3;if(setjmp(buf)!=0){printf("%d ", b);return 0;}b=5;longjmp(buf , 1);return 0;}请问,这段程序的输出是(a) 3(b) 5(c) 0(d) 以上均不是第十题:main(){struct node{int a;int b;int c;};struct node s= {3,5,6};struct node *pt = &s;printf("%d" , *(int*)pt); }这段程序的输出是:(a) 3(b) 5(c) 6(d) 7第十一题:int foo ( int x , int n){int val;val =1;if (n>0){if (n%2 == 1) val = val *x;val = val * foo(x*x , n/2);}return val;}这段代码对x和n完成什么样的功能(操作)?(a) x^n (x的n次幂)(b) x*n(x与n的乘积)(c) n^x(n的x次幂)(d) 以上均不是第十二题:main(){int a[5] = {1,2,3,4,5};int *ptr = (int*)(&a+1);printf("%d %d" , *(a+1), *(ptr-1) );}这段程序的输出是:(a) 2 2(b) 2 1(c) 2 5(d) 以上均不是第十三题:void foo(int [][3] );main(){int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}}; foo(a);printf("%d" , a[2][1]);}void foo( int b[][3]){++ b;b[1][1] =9;}这段程序的输出是:(a) 8(b) 9(c) 7(d)以上均不对第十四题:main(){int a, b,c, d;a=3;b=5;c=a,b;d=(a,b);printf("c=%d" ,c);printf("d=%d" ,d);}这段程序的输出是:(a) c=3 d=3(b) c=5 d=3(c) c=3 d=5(d) c=5 d=5第十五题:main(){int a[][3] = { 1,2,3 ,4,5,6};int (*ptr)[3] =a;printf("%d %d " ,(*ptr)[1], (*ptr)[2] ); ++ptr;printf("%d %d" ,(*ptr)[1], (*ptr)[2] ); }这段程序的输出是:(a) 2 3 5 6(b) 2 3 4 5(c) 4 5 0 0(d) 以上均不对第十六题:int *f1(void){int x =10;return(&x);}int *f2(void){int*ptr;*ptr =10;return ptr;}int *f3(void){int *ptr;ptr=(int*) malloc(sizeof(int));return ptr;}上面这3个函数哪一个最可能引起指针方面的问题(a) 只有f3(b) 只有f1 and f3(c) 只有f1 and f2(d) f1 , f2 ,f3第十七题:main(){int i=3;int j;j = sizeof(++i+ ++i);printf("i=%d j=%d", i ,j);}这段程序的输出是:(a) i=4 j=2(b) i=3 j=2(c) i=3 j=4(d) i=3 j=6第十八题:void f1(int *, int);void f2(int *, int);void(*p[2]) ( int *, int); main(){int a;int b;p[0] = f1;p[1] = f2;a=3;b=5;p[0](&a , b);printf("%d/t %d/t" , a ,b); p[1](&a , b);printf("%d/t %d/t" , a ,b); }void f1( int* p , int q){int tmp;tmp =*p;*p = q;q= tmp;}void f2( int* p , int q){int tmp;tmp =*p;*p = q;q= tmp;}这段程序的输出是:(a) 5 5 5 5(b) 3 5 3 5(c) 5 3 5 3(d) 3 3 3 3第十九题:void e(int );main(){int a;a=3;e(a);}void e(int n){if(n>0){e(--n);printf("%d" , n);e(--n);}}这段程序的输出是:(a) 0 1 2 0(b) 0 1 2 1(c) 1 2 0 1(d) 0 2 1 1第二十题:typedef int (*test) ( float * , float*)test tmp;tmp 的类型是(a) 函数的指针,该函数以两个指向浮点数(float)的指针(pointer)作为参数(arguments)Pointer to function of having two arguments that is pointer to float(b) 整型(c) 函数的指针,该函数以两个指向浮点数(float)的指针(pointer)作为参数(arguments),并且函数的返回值类型是整型Pointer to function having two argument that is pointer to float and return int (d) 以上都不是。