C语言等级考试模拟试题答案

合集下载

全国计算机等级考试c语言试题及答案

全国计算机等级考试c语言试题及答案

全国计算机等级考试c语言试题及答案试题一:1. 下列程序段的输出结果是什么?```#include <stdio.h>int main() {int a = 3;int b = 4;printf("%d\n", a + b * a / b);return 0;}```A. 7B. 27C. 5D. 12答案:D解析:根据C语言的运算规则,乘除法的优先级高于加减法,因此先计算b * a得到12,再除以b得到12,最后和a相加得到12。

2. 下列程序段的输出结果是什么?```#include <stdio.h>#define PI 3.1415int main() {float radius = 3.5;float area = PI * radius * radius;printf("%.2f\n", area);return 0;}```A. 10.36B. 11.60C. 38.48D. 38.48答案:C解析:根据定义的宏常量,将PI乘以半径的平方得到面积,结果保留两位小数。

3. 下列程序段的输出结果是什么?#include <stdio.h>int main() {int i = 0;while (i < 5) {printf("%d ", i++);}return 0;}```A. 0 1 2 3 4B. 0 1 2 3 4 5C. 0 1 2 3 4 4D. 1 2 3 4 5答案:A解析:循环中先执行printf输出i的值,再执行i++,因此输出结果为0 1 2 3 4。

试题二:1. 下列程序段的输出结果是什么?#include <stdio.h>int main() {int a = 10;int b = 20;int c = (a > b) ? a : b;printf("%d\n", c);return 0;}```A. 10B. 20C. 0D. 编译错误答案:B解析:三目运算符的作用是根据条件判断选择表达式的值,根据a 大于b的条件选择a的值,所以输出结果为20。

c语言二级考试题库及详解答案

c语言二级考试题库及详解答案

c语言二级考试题库及详解答案C语言二级考试题库及详解答案一、选择题1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. 3numberD. variable#答案:B2. C语言中,整型变量int所占的字节数是:A. 1字节B. 2字节C. 4字节D. 8字节答案:C(注:实际字节数可能因编译器和平台而异,但通常为4字节)3. 下列哪个不是C语言的控制语句?A. ifB. switchC. forD. goto答案:B(注:switch也是C语言的控制语句,此题有误)二、填空题1. 在C语言中,若要定义一个整型数组,可以使用以下语法:___________。

答案:int array_name[array_size];2. C语言中,用于计算两个数的乘积的运算符是:___________。

答案:*三、简答题1. 简述C语言中数组和指针的区别。

答案:数组是一种数据结构,用于存储相同类型的元素集合。

指针是一个变量,它存储了另一个变量的内存地址。

数组名可以作为指针使用,但数组本身不是指针。

数组的大小在定义时确定,而指针可以指向不同大小的内存块。

2. 解释C语言中的递归函数。

答案:递归函数是一种函数,它在执行过程中调用自己。

递归函数通常用于解决可以分解为相似子问题的问题。

递归函数必须有一个明确的终止条件,以避免无限递归。

四、编程题1. 编写一个C语言程序,实现求1到100的和。

答案:```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转。

答案:```cvoid reverseString(char *str) {int len = 0;while(str[len] != '\0') {len++;}for(int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - 1 - i];str[len - 1 - i] = temp;}}```五、论述题1. 论述C语言中函数的作用和重要性。

c语言模拟考试试题及答案

c语言模拟考试试题及答案

c语言模拟考试试题及答案C语言模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable#name答案:B2. 下列哪个选项是C语言中的关键字?A. charB. variableC. ifD. string答案:C3. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. 在C语言中,以下哪个语句用于定义一个整型变量?A. int var;B. float var;C. double var;D. char var;答案:A5. 下列哪个选项是C语言中的控制结构?A. switch-caseB. if-elseC. for-loopD. All of the above答案:D6. 在C语言中,哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sum()D. None of the above答案:D(注:C语言标准库中没有sum()函数)7. 以下哪个选项是C语言中数组的正确声明方式?A. int array[10] = {1, 2, 3};B. int [10] array = {1, 2, 3};C. Both A and BD. None of the above答案:C8. 在C语言中,哪个函数用于将整数转换为字符串?A. itoa()B. atoi()C. printf()D. sprintf()答案:A9. 下列哪个选项是C语言中正确的函数定义?A. int function(int a, int b) { ... }B. int function(int a; int b) { ... }C. int function(int a, int b) { ... }D. int function(int a, b) { ... }答案:C10. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:D二、填空题(每空2分,共20分)11. 在C语言中,使用____关键字可以定义一个函数。

全国计算机等级考试c语言试题及答案

全国计算机等级考试c语言试题及答案

全国计算机等级考试c语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级编程语言B. C语言可以直接在操作系统上运行C. C语言具有结构化的特点D. C语言具有丰富的库函数答案:B2. 在C语言中,用于定义数组的关键字是:A. structB. enumC. unionD. int答案:D3. 下列关于指针的描述中,正确的是:A. 指针可以存储函数的地址B. 指针不能存储变量的地址C. 指针不能存储数组的地址D. 指针不能存储指针的地址答案:A4. 在C语言中,用于定义结构体的关键字是:A. structB. unionC. enumD. typedef答案:A5. 下列关于循环的描述中,错误的是:A. for循环可以嵌套使用B. while循环不能嵌套使用C. do-while循环至少执行一次D. 循环语句可以没有循环体答案:B6. 在C语言中,用于定义函数的关键字是:A. structB. unionC. enumD. int答案:D7. 下列关于文件操作的描述中,错误的是:A. 文件指针是指向文件的指针B. 文件操作需要包含头文件stdio.hC. 文件操作只能使用二进制方式打开D. 文件操作可以使用"r"、"w"、"a"等模式答案:C8. 在C语言中,用于定义枚举的关键字是:A. structB. unionC. enumD. typedef答案:C9. 下列关于预处理指令的描述中,错误的是:A. #include用于包含头文件B. #define可以定义宏C. #ifdef可以用于条件编译D. #pragma可以用于编译器指令答案:C10. 在C语言中,用于定义联合的关键字是:A. structB. unionC. enumD. typedef答案:B二、填空题(每题2分,共20分)1. 在C语言中,表示逻辑“与”的运算符是______。

全国计算机等级考试《二级C语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二[单选题]1.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是((江南博哥))。

A.外模式B.内模式C.概念模式D.逻辑模式参考答案:B参考解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。

答案选择B选项。

[单选题]4.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划参考答案:D参考解析:需求分析阶段的工作主要包括4个方面:①需求获取,其目的是确定对目标系统的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。

制定软件集成测试计划属于概要设计阶段的任务。

答案选择D选项。

[单选题]5.结构化程序的三种基本控制结构是()。

A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移参考答案:A参考解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。

答案选择A选项。

[单选题]6.构成计算机软件的是()。

A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档参考答案:D参考解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

答案选择D选项。

[单选题]7.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图参考答案:B参考解析:黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明。

一级c语言等级考试试题及答案

一级c语言等级考试试题及答案

一级c语言等级考试试题及答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言的关键字?A. intB. integerC. floatD. double答案:A2. C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. charD. double答案:A3. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A4. 如果变量x的值为10,那么表达式x++的结果是多少?A. 9B. 10C. 11D. 错误5. C语言中,用于定义一个字符型变量的关键字是?A. charB. stringC. intD. float答案:A6. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. 'Hello\nWorld'答案:A7. C语言中,用于定义一个浮点型变量的关键字是?A. intB. floatC. doubleD. char答案:B8. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C9. 如果变量x的值为5.5,那么表达式x++的结果是多少?B. 5.5C. 6.5D. 错误答案:C10. C语言中,用于定义一个双精度浮点型变量的关键字是?A. intB. floatC. doubleD. char答案:C11. 下列哪个选项是C语言中正确的注释方式?A. // This is a commentB. /* This is a comment */C. # This is a commentD. $ This is a comment答案:B12. C语言中,用于定义一个布尔型变量的关键字是?A. boolB. intC. floatD. char答案:A13. 在C语言中,哪个运算符用于计算两个数的差?A. +B. -C. *答案:B14. 如果变量x的值为20,那么表达式x--的结果是多少?A. 19B. 20C. 21D. 错误答案:A15. C语言中,用于定义一个无符号整型变量的关键字是?A. unsigned intB. signed intC. intD. float答案:A16. 下列哪个选项是C语言中正确的多行注释方式?A. // This is a commentB. /* This is a comment */C. # This is a commentD. $ This is a comment答案:B17. C语言中,用于定义一个有符号整型变量的关键字是?A. signed intB. unsigned intC. intD. float答案:C18. 在C语言中,哪个运算符用于计算两个数的除法?A. +B. -C. *D. /答案:D19. 如果变量x的值为3.14,那么表达式x--的结果是多少?A. 2.14B. 3.14C. 4.14D. 错误答案:A20. C语言中,用于定义一个长整型变量的关键字是?A. long intB. intC. short intD. float答案:A二、填空题(每题3分,共30分)1. 在C语言中,使用关键字________来定义一个整型数组。

计算机二级c语言试题题库及答案

计算机二级c语言试题题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义变量的关键字是()。

A. defineB. varC. intD. let答案:C2. 下列关于C语言函数的描述,不正确的是()。

A. 函数可以没有参数B. 函数可以返回值C. 函数必须有返回值D. 函数可以嵌套定义答案:C3. 以下哪个选项不是C语言中的运算符()。

A. %B. &&C. ++D. :答案:D4. 在C语言中,用于定义一个结构体的关键字是()。

A. structB. unionC. enumD. typedef答案:A5. C语言中,用于表示逻辑与的运算符是()。

A. &&B. ||C. !D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语句是:int array[10]; 其中array[0]的值默认为____。

答案:02. 如果一个函数的返回类型是int,那么在函数体中必须包含一条____语句。

答案:return3. 在C语言中,用于计算字符串长度的函数是____。

答案:strlen4. C语言中,用于将字符数组转换为字符串的字符是____。

答案:'\0'5. 当使用指针变量时,必须先对其进行____。

答案:初始化三、编程题(每题10分,共20分)1. 编写一个C语言函数,实现两个整数的交换。

```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```2. 编写一个C语言程序,计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```四、简答题(每题10分,共40分)1. 简述C语言中指针和数组的关系。

c语言模拟考试题及答案

c语言模拟考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个变量?A. defineB. varC. letD. int答案:D3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.23C. 1e2D. "123"答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. lengthof()5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. defineD. void答案:D7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. copy()C. duplicate()D. copystr()答案:A8. 下列哪个选项是C语言中的浮点型常量?A. 3.14B. 3.14e2C. 3.14E2D. A和C答案:D9. 在C语言中,哪个关键字用于声明一个数组?B. listC. tableD. int[]答案:D10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. A和B答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。

答案:#define2. C语言中,使用________函数可以将一个浮点数转换为字符串。

答案:sprintf3. 在C语言中,使用________关键字可以跳过当前循环的剩余部分,继续下一次循环。

答案:continue4. C语言中,使用________关键字可以立即退出循环。

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。

2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。

他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。

在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。

C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。

丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。

2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。

3. 输出结果为“helloworld”。

strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。

在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。

如果第一个字符串不够大,程序会出现内存溢出等问题。

4. A、B、C三个数据类型可以用来存储浮点数。

5. 输出结果为“6”。

在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。

C语言模拟题十套附答案

第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是(D)A. 每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是(B)A. 若一条语句较长,也可分写在下一行上B. 构成C语言源程序的基本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是()A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型4、C程序中main函数的位置(C)A. 必须在最开始B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须在最后5、C语言的函数体由(B)括起来A. ( )B. { }C. [ ]D. /* */6、关于C语言的叙述中,不正确的是(C)A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面7、一个程序的执行是从(C)A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是(C)A. 函数结构、分支结构、判断结构B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构D. 分支结构、循环结构、嵌套结构9、调试程序是指对程序进行(C)A. 编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于(C)A. begin与end之间B. 一对圆括号“()”之间C. 一对花括号“{ }”之间D. 一对方括号“[ ]”之间11、构成C语言源程序的基本单位是(D)A. 语句B. 过程C. 表达式D. 函数语法基础12、在C语言中,正确的用户标识符是(B)A. 3fB. _forC. structD. _f.513、C语言的基本数据类型包括(A)A. 整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型14、以下(D)是正确的常量A. E-5B. 1E5.1C. …a12‟D. 32766L15、以下(D)是正确的变量名A. a.beeB. –p11C. intD. p_1116、以下(C)是正确的字符常量A. “c”B. …//”C. …W‟D. “\32a”17、以下(A)是不正确的字符串常量A. …abc‟B. “12‟12”C. “0”D. “ “18、C语言的整型数据在内存中的存储形式是(C)A. 原码B. 反码C. 补码D. ASCII码19、以下(B)是正确的浮点数( e后面的数必须为整数e前面必须要有数字A. e3B. .62C. 2e4.5D. 12320、下列不属于C语言关键字的是(D)A. continueB. integerC. staticD. signed21、C语言的字符型数据在内存中的存储形式是(D)A. 原码B. 补码C. 反码D. ASCII22、在C语言中,变量所分配的内存空间大小是(A)A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是(A)A. a-=(a*3)B. double(-1)C. a*3D. a*4=324、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()A. 3,3,4B. 4,4,3C. 4,4,4D. 3,4,325、语句a=(3/4)+3%2;运行后,a的值为(B)A. 0B. 1C. 2D. 326、以下四项中,符合C语言语法的语句是(C)注意分号A. int a+b=c;B. int a=12:b=12:c=12;C. int a=12,b=12,c=12;D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()A. 3,3B. 4,4C. 4,3D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A. a=8+b+c,a++B. a=3aC. int(12.3%4)D. a=a+1=c+b29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是()A. x%(-3)B. a+=-1C. a=b=2D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是(B)A. x=x*3=2B. x=(y==1)C. i=float(x) ( 形式错误:正确的是:i=(float)x 是将数据类型括号起来)D. i%(-3)31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()A. 8B. 7C. 6D. 532、下面关于C语言变量的叙述中,错误的是(C)A. 可以用const关键字定义变量B. 在C程序中,SUM和sum是不同的变量C. 变量名必须由字母或下划线组成(可是是字母和数字组合)D. 变量的类型确定了变量的取值范围33、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为()A. 5B. 1C. 6D. 034、下面叙述正确的是(B)A. 2/3与2.0/3.0等价B. (int)2.0/3与2/3等价C. ++5与6等价D. …A‟与”A”等价35、下面叙述中,错误的是(A)A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是(A)A. 强制类型转换运算的优先级高于算术运算B. 若a和b是整型变量,(a+b)++是合法的(自加自减运算只能用于简单变量,不能用于表达式或常量)C. …A‟*‟B‟是不合法的D. “A”+”B”是合法的只能字符间运算37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为(C)A. 1B. 0C. 6D. 7 (i先运算再减减,加了括号也一样38、设整型变量a为5,使b不为2的表达式是(C)A. b=(++a)/3B. b=6-(--a)C. b=a%2D. b=a/239、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)A. 1B. 0C. 2D. 3(&&的优先级高于|| ,即先进行++b&&++c运算,~,<< ,>>,&,^(异或),| 优先级依次降低)40、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)A. 7B. 8C. 9D. 10 (i++要算完)41、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(B)A. 7B. 8C. 9D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为(A)A. 8B. 6C. 7D. 5 红字部分先算43、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为(C)A. 4B. 5C. 6D. 7 ( i先运算再--44、C语言的运算符按运算对象的个数可以分为(C)A. 单目运算符一种B. 单目和双目运算符C. 单目、双目和三目运算符D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是(D)A. scanf(“%5.2f”,&m);B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m);D. scanf(“%6f”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A. scanf(“%l d”,&a);B. scanf(“%l f”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)A. scanf(“%d”,&a);B. scanf(“%l f”,&a);不可能是实数C. scanf(“%c”,&a);D. scanf(“%u”,&a);十进制无符号48、putchar()函数的功能是向终端输出(B)A. 多个字符B. 一个字符C. 一个实型变量值D. 一个整型变量表达式49、以下程序段运行后的输出结果是(C)int k=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);A. k=11,k=13,k=cB. k=11,k=12,k=13C. k=11,k=13,k=bD. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)A. 123412312B. 12341234123412341231231231212C. 1234+1234+1234D. 1234+123+1251、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()A. 10ABB. 10 A BC. 10A BD. 10 AB52、以下程序段的运行结果是(A)int a=0,b=0,c=0;if(a&&++b) (因为a=0 又是与运算,故不进行&&后面的运算了)c++;printf(“%d,%d\n”,b,c);A. 0,0B. 1,2C. 2,2D. 1,053、以下程序的运行结果是()void main(){int a=65;c har c=‟A‟;printf(“%x,%d”,a ,c);}A. 65,aB. 41,aC. 65,65D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是(B)A. printf(“%d%d”,a,b);B. printf(“%d%2f”,a,b);C. printf(“%2f%2f”,a,b);D. printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是(A)char c1='8',c2='2008';printf("%c,%d\n",c1,c2);A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2008“表示,而‘2008’不是字符串表示C. ‘2008’只能赋值给字符数组D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为(B)A. 1B. 0C. tD. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)A. 1B. 非0的数C. 大于0的数D. 非0的整数58、若已定义:int a=-36,b=-30,c;则语句c=a<b;运行后c的值为(A)A. 1B. tC. 0D. f (有符号的比较,按负数进行比较)59、能正确表示数学关系式800>=y>=500的C语言表达式为(A)A. (y<=800)&&(y>=500)B. (y<=800)AND(y>=500)C. 800>=y>=500D. (y<=800)&(y>=500)60、若有定义:int x=3,y=4;则表达式!x||y的值为(A)(!,算术运算符,关系运算符,&&,|| ,赋值运算符优先级依次降低)注意:表达式的最后结果不是零就是一A. 1B. 0C. 3D. 461、若有定义:int i=7,j=8;则表达式i>=j||i<j的值为()A. 1B. 变量i的值C. 0D. 变量j的值62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题1、若有说明语句:int x=10,y=20,z=30;则执行语句:if(x>y) z=x; x=y; y=z; printf(“%d,%d,%d”,x,y,z); 后,输出是20,30,302、若有以下语句:char x=3,y=6,z; z=y^x<<2;则z的二进制值是000010103、若有定义:int i,j,*pi=&i; 则与i==j等价的比较表达式是*pi==j4、程序段:int num=0;while(num<=2)printf(“%d ,”,num++);的运行结果是0 ,1 ,2 ,5、若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的首地址6、若已定义: int x;则表达式((x=4*5,x*5),x+25) 的值是45。

7、若有说明:int a[3][4],s; ,则对数组a的元素引用错误的是____________8、下列C语言的标识符中,合法的标识符为____________9、若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句:scanf(“x=%d, y=%f”,&x,&y,); 时,正确的键盘输入是x=55, y=55.5。

10、若有定义:struct person{int id ;char name[20];} per,*s=&per;则以下对结构体成员的引用中错误的是____________二、填空题1、下列程序的输出结果是6long fib(int g){ switch(g){case 0: return(0);case 1:case 2: return(2);}return ( fib(g-1) + fib(g-2) );}main(){ long k;k = fib(4);printf("k=%ld\n", k);}2、设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2后,t 的值是13、如果函数不要求带回值,可用void来定义函数返回值为空.4、下列程序的输出结果是4 10f(int a[]){ int i=0;while (a[i]<=10){ printf(“%d ”, a[i]);i++;}}main(){ int a[]={8,4,10,11,9,20};f(a+1);}5、设有说明语句:int a=13, b=6;则a/b的十进制数值为26、假定建立了以下链表结构:struct node{int id ;struct node *next;} *head,*p;如下图所示:指针p指向一个新结点,将新结点插入到链表成为头结点的两条C语言语句是【p next=head;head=p;】7、设有说明语句:int x=3, y=2; 则计算表达式(x=5) || (y=6*x) 后变量y的值是2三、程序填空题1、下面程序的功能是:整型数组a中含N个元素,现将元素位置进行前后交换,使第0个元素与第N-1个元素交换,第1个元素与第N-2个元素交换,以此类推,最后输出交换后的数组元素。

#include <stdio.h>#define N 8int a[N]={3,8,5,15,9,7,20,6};main(){ int i,j,t;for(i=0;i<N;i++)printf("%4d",*(a+i)); /*输出交换前的元素*/printf("\n");for(i=0;i<N/2;i++){j=N-1-i; /*需要交换的元素下标*/t=*(a+i);*(a+i)=*(a+j);*(a+j)=t;}for(j=0;j<N;j++)printf("%4d",*(a+j)); /*输出交换后的元素*/printf("\n");}2、有人说,满足公式p=n*n+n+41 (n是正整数)的p一定是素数,下列程序验证这个说法是错误的。

#include <stdio.h>int fun(int p){ int n;for(n=2;n*n<=p;n++)if(p%n==0) return 0 ;return 1;}main(){ int n=1,p;do{ p=n*n+n+41;if(!fun(p)) break;printf(“%d是素数\n”,p);}while(n++);printf(“%d=%d*%d+%d+41不是素数\n”,p,n,n,n);}3、将两个文本文件中字符'$'之前的内容合并到一个文件中去,其中函数voidsub(FILE*all, FILE*f1 ,FILE *f2 )的功能是将文件指针f1,f2所指向的文件中的内容写到文件指针all所指向的文件中;main函数完成如下功能:先打开目标文件,再依次打开源文件,调用sub函数完成文件内容的拷贝。

例如三个源文件f1.txt ,f2.txt, 每个文件的内容分别如下文件名内容f1 aaa$aaf2 bbb$bb则产生一个新的目标文件fall.txt,包括f1,f2三个文件字符'$'之前的内容,fall的内容为aaabbb。

#include <stdio.h>#include <stdlib.h>main(){FILE *f1, *f2,*fall;void sub(FILE *all, FILE *f1, FILE *f2);if ((fall=fopen("fall.txt","w"))==NULL) {printf("Cannot open file!\n");exit(1);}if ((f1=fopen("f1.txt","r"))==NULL || (f2=fopen("f2.txt","r"))==NULL) {printf("Cannot open file!\n");exit(1);} else {sub(fall,f1,f2);fclose(fall);}fclose (f1);fclose(f2);}void sub(FILE *all, FILE *f1, FILE *f2){char c;while((c=fgetc(f1))!='$') fputc( c,all);while((c=fgetc(f2))!='$') fputc( c,all);}四、程序调试题(2题,4+6=10分)1. 程序调试题1(E_3_1.c)调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。

将结果(包括E_3_1.c文件和E_3_1.exe文件)保存到目录C:\KS\中。

功能说明:程序功能是输入正整数n(1<=n<=9),输出n行杨辉三角形。

如:输入n=5,则输出如下图形:11 11 2 11 3 3 11 4 6 4 1原程序(见C:\KS\E_3_1.c】#include <stdio.h>main( ){static int a[9][9];int i,j,k,n;scanf(" %d",&n);for(i=0;i<n;i++) /*modified*/{ for(k=0;k<18-2*i;k++)printf(" ");for(j=0;j<=i;j++){if(j==0||j==i)a[i][j]=1;elsea[i][j]=a[i-1][j-1]+a[i][j-1];printf(" ");printf("%-3d",a[i][j]);}printf("\n"); /*modified*/}}2.程序调试题2(E_3_2.C)调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。

将结果(包括E_3_2.c文件和E_3_2.exe文件)保存到C:\KS\目录中。

功能说明:程序功能是输入一个字符串(少于80个字符,以回车结束),把字符串中的数字字符(0-9)转换为整数,去掉其他字符,要求定义并调用函数long stol (char*s),s 是原字符串。

假设不考虑整数数据范围超限的情况。

如输入:3a56bc77rfasefg fg88fg↙则输出:3567788原程序(见C:\KS\E_3_2.c)】#include<stdio.h>long stol( char *s){long number=0;while(*s!='\0'){if(*s>='0' && *s<='9') /*modified*/number=number*10+*s-'0' ;s++;}return number;}main(){char s[80];gets(s);/*modified*/printf("number=%ld",stol(s)); /*modified*/}五.编程题(2题,18+18=36分)1.编程题1(E_5_1.c)编程要求:请按题中的功能要求,编写程序并能得到正确结果。

将结果(包括E_5_1.c 文件和E_5_1.exe文件)保存到目录C:\KS\中。

功能说明:函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。

从主函数中输入d和n,调用fun函数,并以sum=XXXXXXX的形式输出结果。

如输入d=3,n=4则输出:sum=3702#include <stdio.h>void main(){int d,n,sum;int fun(int d, int n);printf("请输入d和n的值:\n");printf("d=");scanf("%d",&d);printf("\n");printf("n=");scanf("%d",&n);printf("\n");sum=fun(d,n);printf("sum=%d+%d%d+%d%d%d+……+%d……%d=%d\n",d,d,d,d,d,d,d,d,sum);}int fun(int d, int n){int i,k=0,sum=0;for(i=1;i<=n;i++){k=k*10+d;sum=sum+k;}return sum;}2.编程题2(E_5_2.c)编程要求:请按题中的功能要求,编写程序并能得到正确结果。

相关文档
最新文档