C语言二级试题4
- 格式:doc
- 大小:79.00 KB
- 文档页数:14
c国家二级考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,下列哪个选项是正确的数据类型?A. intB. floatC. doubleD. All of the above答案:D2. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D3. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. voidD. All of the above答案:C4. 下列哪个选项是C语言中正确的数组声明方式?A. int array[10];B. int [10] array;C. int array[];D. All of the above答案:D5. 在C语言中,哪个函数用于输入字符?A. scanf()B. getchar()C. printf()D. Both A and B答案:B6. 下列哪个选项是C语言中的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello" "World!"D. All of the above答案:A7. 在C语言中,哪个关键字用于跳过当前循环的剩余部分,并开始下一次迭代?A. continueB. breakC. returnD. Both A and B答案:A8. 下列哪个选项是C语言中正确的结构体声明方式?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. Both A and BD. None of the above答案:C9. 在C语言中,哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. All of the above答案:C10. 下列哪个选项是C语言中正确的文件操作函数?A. fopen()B. fclose()C. Both A and BD. None of the above答案:C二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个全局变量。
计算机二级c语言试题及答案详解一、基础知识部分1. 下列关于C语言的描述中,错误的是:A) C语言是一种高级语言B) C语言是一种编译型语言C) C语言是一种面向对象语言D) C语言是一种结构化语言答案:C) C语言是一种面向对象语言解析:C语言是一种过程式语言,不是面向对象语言。
2. 下列关于C语言标识符的说法中,错误的是:A) 标识符由字母、数字和下划线组成B) 标识符可以以字母或下划线开头C) 标识符区分大小写D) 标识符不能与C语言的关键字相同答案:C) 标识符区分大小写解析:C语言标识符是不区分大小写的。
3. 以下哪项不是C语言关键字?A) ifB) whileC) varD) for答案:C) var解析:C语言中没有关键字var,正确的关键字是int。
4. 下列代码中,哪个选项是合法的C语言注释?A) /* This is a comment */B) // This is a commentC) # This is a commentD) <!-- This is a comment -->答案:A) /* This is a comment */解析:C语言的注释格式是/* ... */。
二、程序设计部分请写一段C语言程序,实现将两个数相加并输出结果的功能。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```解析:以上代码实现了从用户输入两个整数,然后将其相加并输出结果的功能。
三、综合应用部分下列代码中,输出的结果是多少?```c#include <stdio.h>int main() {int a = 5, b = 2;float result;result = a / b;printf("结果为:%f\n", result);return 0;}```答案:结果为2.000000解析:由于a和b都是整数类型,除法运算得到的结果也是整数类型。
全国计算机等级考试二级C语言笔试试题及答案一、选择题1. 以下关于C语言的描述中,正确的是(A)A. C语言是一种结构化程序设计语言B. C语言是面向对象的程序设计语言C. C语言是一种解释型语言D. C语言是一种高级汇编语言答案:A2. 在C语言中,以下哪个选项是非法的整型常量?(D)A. 012B. 0x123C. 0XabcD. 0123答案:D3. 若变量已正确定义并赋值,以下正确的表达式是(C)A. a = b ++ + 1;B. a = b ++ = a++;C. a = b + b++;D. a = ++b + ++b;答案:C4. 在C语言中,以下哪个函数用于输出字符?(B)A. printfB. putcharC. putcharcD. putchart答案:B5. 已知 int a = 5, b = 3;,以下哪个选项的结果为1?(D)A. a % bB. a / bC. a + bD. a - b答案:D二、填空题1. 在C语言中,一个int类型的数据在内存中占______个字节。
答案:42. C语言中,逻辑运算符“或”用______表示。
答案:||3. 若定义 int a = 10, b = 20;,则执行语句 a += b -= a; 后,b的值为______。
答案:104. 在C语言中,函数的返回值类型为void时,表示该函数______。
答案:无返回值5. 在C语言中,以下函数的返回类型为______。
int max(int a, int b) {return (a > b) ? a : b;}答案:int三、判断题1. C语言中的数组名可以作为指针使用。
(正确)2. 在C语言中,静态存储区的数据在程序运行期间一直存在。
(正确)3. 在C语言中,结构体是一种用户自定义的数据类型。
(正确)4. 在C语言中,函数的参数传递都是按值传递的。
(错误,部分按引用传递)5. 在C语言中,文件操作完成后必须关闭文件,否则可能导致数据丢失。
国家二级C语言(数组)机试模拟试卷4(题后含答案及解析)题型有:1. 选择题选择题1.若有定义:int x[10],*pt=x;,则对x数组元素的正确引用是( )。
A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)正确答案:D解析:没有A选项的引用形式。
*与&放在一起作用抵消,但x[10]下标10超出了数组下标范围,所以B选项错误。
最大只能引用到x[9],而*(pt+i)表示引用指针pt所指元素后的第i个元素,所以C选项错误,最大只能为*(pt+9)。
D 选项正确。
知识模块:数组2.有以下程序:#include<stdio.h>main( ){int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的运行结果是( )。
A.20B.25C.45D.36正确答案:B解析:统计1~9这9个数中的奇数和,此题考查指向数组的指针。
C语言规定数组名代表数组的首地址,也就是第一个元素的地址,因此*(t+i)代表数组的第i+1个元素。
程序的运行结果是1+3+5+7+9=25。
知识模块:数组3.有以下程序:#include<stdio.h>main( ){int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)e[s[i]]++;for(i=1;i <5;i++)printf(“%d”,c[i]);printf(“\n”);}程序的运行结果是( )。
A.2 3 4 4B.4 3 3 2C.1 2 3 4D.1 1 2 3正确答案:B解析:在for(i=0;i<12;i++)c[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4、3、3、2,因此B选项正确。
知识模块:数组4.下列定义数组的语句中正确的是( )。
计算机二级考试c语言试题及答案计算机二级考试C语言试题及答案一、选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x123B. 123.0C. 123e2D. 123.0L答案:A2. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!", 'Hello, World!'D. "Hello, World!'"答案:A4. 在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 - b; }D. int add(a, b) { return a + b; }答案:A5. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. int array = 10;答案:A二、填空题1. 在C语言中,用于输入的函数是___________。
答案:scanf2. 在C语言中,用于输出的函数是___________。
答案:printf3. 在C语言中,用于计算两个整数的差的运算符是___________。
答案:-4. 在C语言中,用于定义一个整型变量的关键字是___________。
答案:int5. 在C语言中,用于定义一个字符型变量的关键字是___________。
c语言二级考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,正确的是()。
A. C语言是一种高级语言B. C语言是一种低级语言C. C语言是一种面向对象的编程语言D. C语言是一种面向过程的编程语言答案:D2. 在C语言中,用于定义一个结构体类型的关键字是()。
A. structB. unionC. enumD. typedef答案:A3. 下列关于C语言中数组的描述,错误的是()。
A. 数组的索引从0开始B. 数组的索引从1开始C. 数组可以是一维的或多维的D. 数组的元素类型必须相同答案:B4. 在C语言中,用于定义一个函数的关键字是()。
A. structB. functionC. defineD. int答案:D5. 下列关于C语言中指针的描述,错误的是()。
A. 指针可以指向任何类型的变量B. 指针可以指向数组C. 指针可以指向函数D. 指针本身没有类型答案:D6. 在C语言中,用于实现文件操作的库函数是()。
A. math.hB. stdio.hC. string.hD. time.h答案:B7. 下列关于C语言中循环的描述,正确的是()。
A. for循环不能嵌套使用B. while循环不能与do-while循环嵌套使用C. do-while循环至少执行一次循环体D. 循环语句中不能使用break语句答案:C8. 下列关于C语言中条件语句的描述,错误的是()。
A. if语句可以单独使用B. switch语句可以用于多条件分支C. if语句中可以嵌套else ifD. switch语句中不能使用break语句答案:D9. 下列关于C语言中函数的描述,错误的是()。
A. 函数可以有返回值B. 函数可以没有返回值C. 函数可以有多个返回值D. 函数可以有多个参数答案:C10. 在C语言中,用于定义一个枚举类型的关键字是()。
A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. C语言中,标识符可以由字母、数字和下划线组成,但不能以()开头。
全国计算机等级考试二级C语言笔试试题及答案解析试题一:选择题1. 下列关于C语言的说法,错误的是()A. C语言是一种高级语言B. C语言具有跨平台性C. C语言编译器可以直接生成机器码D. C语言是一种解释型语言答案:D解析:C语言是一种高级语言,具有跨平台性。
编译器将C语言源程序编译成目标代码,然后通过链接器生成可执行文件,这个过程生成的机器码可以被计算机直接执行,因此C语言不是解释型语言。
2. 以下哪个选项不是C语言的基本数据类型?()A. intB. charC. floatD. string答案:D解析:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。
string不是C语言的基本数据类型,而是由字符数组构成的一种自定义类型。
试题二:填空题1. 在C语言中,每个语句的结尾必须使用()符号。
答案:分号(;)解析:在C语言中,每个语句的结尾必须使用分号(;)作为结束符,表示一个语句的结束。
2. 以下程序的输出结果是()。
```c#include <stdio.h>int main() {int a = 5;int b = 3;printf("%d\n", a % b);return 0;}```答案:2解析:在C语言中,取模运算符(%)用于计算两个整数相除的余数。
在本题中,5除以3的余数为2,因此输出结果为2。
试题三:编程题1. 编写一个C程序,实现以下功能:从键盘输入10个整数,计算并输出这些整数的平均值。
```c#include <stdio.h>int main() {int i, num;float sum = 0.0, average;for (i = 0; i < 10; i++) {printf("请输入第%d个整数:", i + 1);scanf("%d", &num);sum += num;}average = sum / 10;printf("这10个整数的平均值为:%.2f\n", average);return 0;}```解析:本题考查了循环语句、输入输出函数等基本知识。
全国计算机等级考试二级c语言题库及答案全国计算机等级考试二级C语言题库及答案1. 以下关于C语言的叙述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持模块化程序设计答案:B2. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. forC. returnD. void答案:D3. 若有定义:int a=3, b=4; 则表达式 a+b 的值是:A. 7B. 6C. 3.4D. 43答案:A4. 在C语言中,以下哪个选项不是合法的变量名?A. _sumB. sum_C. 2valueD. sum$答案:C5. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][];C. int array[3][];D. int array[2,3];答案:A6. 若有定义:char c1='a', c2='b'; 则表达式 c1-c2 的值是:A. -1B. 1C. 97D. 98答案:A7. 在C语言中,以下哪个选项不是合法的字符串字面量?A. "Hello"B. 'Hello'C. "123"D. "C\"Language"答案:B8. 若有定义:int x=10; 则表达式 x++ 的结果是:A. 10B. 11C. 9D. 无法确定答案:A9. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. floatD. pointer答案:B10. 若有定义:int a[5] = {1, 2, 3, 4, 5}; 则表达式 a[2] 的值是:A. 3B. 4C. 5D. 无法确定答案:A11. 在C语言中,以下哪个选项不是合法的循环控制语句?A. forB. whileC. do-whileD. repeat答案:D12. 若有定义:float x=3.14; 则表达式 (int)x 的值是:A. 3B. 3.14C. 4D. 无法确定答案:A13. 在C语言中,以下哪个选项不是合法的函数参数类型?A. intB. floatC. doubleD. void答案:D14. 若有定义:int a=5, b=10; 则表达式 a%b 的值是:A. 5B. 0C. 1D. 无法确定答案:B15. 在C语言中,以下哪个选项不是合法的输入输出函数?A. printfB. scanfC. coutD. getchar答案:C16. 若有定义:int a=2, b=4; 则表达式 a&b 的值是:A. 0B. 2C. 4D. 6答案:B17. 在C语言中,以下哪个选项不是合法的逻辑运算符?A. &&B. ||C. !D. <答案:D18. 若有定义:int a=3; 则表达式 a<<2 的值是:A. 6B. 12C. 9D. 无法确定答案:B19. 在C语言中,以下哪个选项不是合法的文件操作函数?A. fopenB. fcloseC. removeD. delete答案:D20. 若有定义:int a=6; 则表达式 a==6 的值是:A. 1B. 0C. 6D. 无法确定答案:A。
下半年计算机二级考试C语言模拟试题及答案四2015年下半年计算机二级考试C语言模拟试题及答案(四)一、选择题1.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer 代表的是(B)。
A、一个存储区,存放要读的数据项B、一个指针,指向要读入数据的存放地址C、一个文件指针,指向要读的文件D、一个整数,代表要读入的数据项总数2.结构体类型的定义允许嵌套是指(A)。
A、成员是已经或正在定义的结构体型B、定义多个结构体型C、成员可以重名D、结构体型可以派生3.对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是(B)。
A、&B、.C、*D、->4.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(D)。
A、&t[1]B、t[3]C、&t[3][2]D、t[2]5.若有说明:int *p,m=5,n;以下正确的程序段是(D)。
A、scanf("%d",&n);*p=n;B、p=&n;scanf("%d",*p)C、p=&n;scanf("%d",&p);D、p=&n;*p=m;6.若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为(D)。
A、无确定值B、a的地址C、512D、5117.下列说法中正确的是(B ).A、函数调用不占运行时间,只占编译时间.B、宏替换不占运行时间,只占编译时间.C、有参数的宏定义,就是函数.D、在定义宏时,宏名与带参数的括弧之间可以加空格.C语言程序中,若对函数类型未加声明,则函数的类型系统默认为(C)。
A、voidB、doubleC、intD、char8.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(A)。
国家二级计算机考试c语言试题及答案国家二级计算机考试C语言试题及答案一、选择题(本大题共10小题,每小题2分,共20分。
每小题只有一个正确答案。
)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. variable2!D. _variable2答案:D3. C语言中,用于表示逻辑“与”的运算符是?A. &&B. ||C. !D. =答案:A4. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A5. 下列哪个选项是正确的C语言注释?A. // This is a single line commentB. /* This is a single line comment */C. // This is a multi-line commentD. /* This is a multi-line comment */答案: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};答案:A7. C语言中,用于计算两个整数相加的函数是?A. strcatB. strcmpC. strcpyD. sum答案:D(注:sum不是C语言标准库函数,此处假设为自定义函数)8. 下列哪个选项是C语言中的合法常量?A. 0x1AB. 1.23e5C. 123.45D. All of the above答案:D9. C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A10. 在C语言中,哪个关键字用于声明一个指针?A. intB. charC. floatD. *答案:D二、填空题(本大题共5小题,每小题2分,共10分。
一、选择题(1)最简单的交换排序方法是A)快速排序B)选择排序C)堆排序D)冒泡排序正确答案: D(2)栈通常采用的两种存储结构是A)线性存储结构和链表存储结构B)散列方式和索引方式C)链表存储结构和数组D)线性存储结构和非线性存储结构正确答案: A(3)线性表的顺序存储结构和线性表的链式存储结构分别是A)顺序存取的存储结构、顺序存取的存储结构B)随机存取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构正确答案: B(4)完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是A)黑箱测试法B)白箱测试法C)错误推测法D)安装测试法正确答案: A(5)在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示A)模块之间的调用关系B)程序的组成成分C)控制程序的执行顺序)数据的流向正确答案: A(6)下列选项中,不属于模块间耦合的是A)数据耦合B)同构耦合C)异构耦合D)公用耦合正确答案: C(7)一个关系中属性个数为1时,称此关系为A)对应关系B)单一关系C)一元关系D)二元关系正确答案: C(8)为用户与数据库系统提供接口的语言是A)高级语言B)数据描述语言(DDL)C)数据操纵语言(DML)D)汇编语言正确答案: C(9)相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和A)可重用性差B)安全性差C)非持久性D)冗余性正确答案: D(10)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能正确答案: D(11)下列关于C语言的说法不正确的是A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能B)C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案: B(12)下列关于标识符的说法中错误的是A)合法的标识符是由字母、数字和下划线组成B)C语言的标识符中,大写字母和小写字母被认为是两个不同的字符C)C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符D)用户标识符与关键字不同时,程序在执行时将给出出错信息正确答案: D(13)下列合法的整型常量的表示是A)098B)oXdeC)32767D)0xDG正确答案: C(14)现在有以下定义,int a;double b;float c;char k;则下面的表达式a/b+c-k值的类型为:A)intB)doubleC)floatD)char正确答案: B(15)假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为A)17B)16C)15D)14正确答案: C(16)下列关于复合语句和空语句的说法错误的是A)复合语句是由"{"开头,由"}"结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束正确答案: C(17)关于printf()函数的返回值叙述正确的是A)通常是本次调用中输出字符的个数B)通常是输出的第一个数值C)通常返回布尔值真D)通常返回非零值正确答案: A(18)现有格式化输入语句,scanf("x=%dц,sumцy=%d,lineцz=%dL",&x,&y,&z);,现在已知在输入数据后,x,y,z的值分别是12,34,45,则下列数据是正确的输入格式的是A)12,34,45<Enter>B)x=12,y=34,z=45<Enter>C)x=12C,sumy=34,z=45<Enter>D)x=12],sum]y=34,line]z=45<Enter>[注]:"ц"表示空格, <Enter>表示回车正确答案: D(19)设x,y,z,t均为整型变量,现有如下语句x=y=z=1;t=++x||++y&&++z;则执行这个语句后t 的值为A)2B)1C)0D)不定值正确答案: B(20)现有如下程序段,此程序段编译有错误,则程序段的错误出在#include <stdio.h>main(){ int a=30,b=40,c=50,d;d=a>30?b:c;switch(d){case a:printf("%d,",a);case b:printf("%d,",b);case c:printf("%d,",c);default:printf("#");}}A)default:printf("#");这个语句B)d=a>30?b:c;这个语句C)case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c);这三个语句D)switch(d)这个语句正确答案: C21)下列语句中,错误的是(x,y,a,b假设已经定义好)A)while(x=y)5;B)do x++ while(x==10);C)while(0);D)do 2;while(a==b);正确答案: B(22)若i,j已经定义为整型,则以下程序段中,内循环体的执行次数是for(i=6;i;i--)for(j=0;j<5;j++){……}A)40B)35C)30D)25正确答案: C(23)下列说法中错误的是A)只能在循环体内使用break语句B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C)在while和do…while循环中,continue语句并没有使整个循环终止D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断正确答案: A(24)阅读如下程序段#include "stdio.h"main(){ int x,a,b;scanf("%d",&x);a=b=x;for(;x!=0;){ if(x<b)b=x;if(x>a)a=x;scanf("%d",&x);}printf("a=%d,b=%d\n",a,b);}现输入如下。
[注]:′ц′表示空格34ц56ц23ц45ц5ц56ц7ц12ц365ц49ц48ц57ц87ц7ц6ц7569ц789ц0<Enter>输入后输出结果是A)a=7569,b=789B)a=5,b=365C)a=7,b=789D)a=7569,b=5正确答案: D(25)下面关于字符常量的说法错误的是A)一个字符常量代表ASCII字符集中的一个字符B)单引号中的大写字母和小写字母代表不同的字符常量C)字符常量只能包含一个字符D)字符常量可以用单引号或双引号括起来正确答案: D(26)现有如下程序#include "stdio.h"int fun(int x){printf("x=%d\n",++x);}main(){fun(12+5);}则程序的输出结果是A)12B)13C)17D)18正确答案: D(27)现有如下程序段#include "stdio.h"int aa(int x,int y);main()c=aa(a,b);printf("%d\n",c);}int aa(int x,int y){int w;while(y){w=x%y;x=y;y=w;}return x;}则程序段的输出结果是A)8B)7C)6D)5正确答案: A(28)下列说法错误的是A)函数调用时,函数名必须与所调用的函数名字完全相同B)实参的个数必须与形式参数的个数一致C)实参可以是表达式,在类型上必须与形参一一对应匹配D)C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外)正确答案: C(29)函数的值通过return语句返回,下面关于return语句的形式描述错误的是A)return表达式;B)return(表达式);C)一个return语句可以返回多个函数值D)一个return语句只能返回一个函数值正确答案: C(30)现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是A)p=&a;B)q=&b;C)p=q;D)p=a;正确答案: D31)现有如下程序段#include "stdio.h"int *fun(int *a,int *b){int c;c=*a%*b;return &c;}main()c=fun(&a,&b);printf("%d\n",++*c);}则程序段执行后的结果为A)8B)7C)6D)5正确答案: C(32)现有int a,*b;,b=&a;,则下列运算错误的是A)*&aB)&*aC)*&bD)&*b正确答案: B(33)现有如下程序段#include "stdio.h"main(){ int k[30]={12,324,45,6,768,98,21,34,453,456};int count=0,i=0;while(k[i]){ if(k[i]%2==0‖k[i]%5==0)count++;i++; }printf("%d,%d\n",count,i);}则程序段的输出结果为A)7,8B)8,8C)7,10D)8,10正确答案: D(34)现有如下定义语句int*p,s[20],i;p=s;表示数组元素s[i]的表达式不正确的是A)*(s+i)B)*(p+i)C)*(s=s+i)D)*(p=p+i)正确答案: C(35)阅读如下程序段,这个程序在编译的时候会有一个警告,下列关于这个警告叙述正确的是#include "stdio.h"#define N 10int *fun(int a[N],int n){ int i,b[N];for(i=0;i<n;i++)b[i]=a[i];return(b);}main(){ int a[N]={12,34,45,5,6,34,4,655,2};int *k;k=fun(a[N],5);printf("%d\n",*k);}A)指针k没有指向任何对象而成为"无向指针",所以这里会产生警告B)return语句不应该有括号,所以在这里会有警告C)return语句的返回值类型与指针k的基类型不一致,这里会产生警告D)数组赋值的时候没有把数组全部都赋初值,所以在这里会有警告正确答案: A(36)有如下定义语句:int aa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为A)3,2B)3,1C)2,2D)2,1正确答案: C(37)现有如下程序段#include "stdio.h"main(){int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};int i=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为A)21B)78C)23D)28正确答案: A(38)下列程序的输出结果是#include "stdio.h"#define N 3#define M 3void fun(int a[M][N]){printf("%d\n",*(a[1]+2));}main(){int a[M][N];int i,j;for(i=0;i<M;i++)for(j=0;j<N;j++)a[i][j]=i+j-(i-j);fun(a);}A)3B)4C)5D)6正确答案: B(39)下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B)′\0′作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入′\0′D)在C语言中,字符串常量隐含处理成以′\0′结尾正确答案: B(40)有下面程序段#include "stdio.h"#include "string.h"main(){char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};char k[100]={0},*p=k;int i;for(i=0;i<3;i++){ p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}则程序段的输出结果是A)18B)19C)20D)21正确答案: Bwhile(a[i]!=′\0′&& b[j]==′\0′)c[k++]=a[i++];c[k]=′\0′;puts(c);}则输出结果是A)acfijkbefijklqswzB)abceffiijjkklqswzC)befijklqswz acfijkD)abcefijklqswz正确答案: D(42)现在有如下程序#include "stdio.h"main(){char s[80];int i,j;gets(s);for(i=j=0;s[i]!=′\0′;i++)if(s[i]!=′H′______)s[j]=′\0′;puts(s);}这个程序段的功能是删除输入的字符串中字符′H′,则空线上应当添入的是A)s[j++]=s[i];j++;B)s[j]=s[i++];j++;C)s[j++]=s[i];D)s[j]=s[i];正确答案: C(43)下列说法中错误的是A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽C)静态全局变量可以被其他的编辑单位所引用D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失正确答案: C(44)阅读下列程序段,则程序的输出结果为#include "stdio.h"#define M(X,Y)(X)*(Y)#define N(X,Y)(X)/(Y)main(){int a=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}A)3B)5C)6D)8正确答案: A(45)若有以下定义和语句struct a{ int n,m;};struct a st[3]={{1,20},{2,19},{3,21}};struct a *p=st;则以下错误的引用是A)(p++)->n;B)st[0].n;C)(*p).n;D)p=&st.m;正确答案: D(46)假设有如下定义:struct a{int n;float k;}data,*p;若要使p指向data中的成员n,正确的赋值语句是A)p=&data.n;B)*p=data.n;C)p=(struct a *)&data.n;D)p=(struct a *)data.n;正确答案: C(47)下面函数的功能是将指针t2所指向的线性链表,链接到t1所指向的链表的末端。