往届c试题

合集下载

蓝桥杯历届c语言试题及答案

蓝桥杯历届c语言试题及答案

蓝桥杯历届c语言试题及答案蓝桥杯历届C语言试题及答案1. 问题描述编写一个程序,实现对给定整数数组进行排序的功能。

2. 输入格式第一行包含一个整数N,表示数组中元素的数量。

第二行包含N个整数,表示数组中的元素。

3. 输出格式输出排序后的数组。

4. 样例输入```53 14 1 5```5. 样例输出```1 1 3 4 5```6. 答案```c#include <stdio.h>#include <stdlib.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int partition(int arr[], int low, int high) { int pivot = arr[high];int i = (low - 1);for (int j = low; j <= high - 1; j++) {if (arr[j] < pivot) {i++;swap(&arr[i], &arr[j]);}}swap(&arr[i + 1], &arr[high]);return (i + 1);}void quickSort(int arr[], int low, int high) { if (low < high) {int pi = partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}}int main() {int N;scanf("%d", &N);int arr[N];for (int i = 0; i < N; i++) { scanf("%d", &arr[i]);}quickSort(arr, 0, N - 1);for (int i = 0; i < N; i++) { printf("%d ", arr[i]);}return 0;}```。

100条经典C语言笔试题目(全)

100条经典C语言笔试题目(全)

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个字节. 所以它的大小是20.data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52。

历年计算机二级c考试真题及答案

历年计算机二级c考试真题及答案

历年计算机二级c考试真题及答案一、选择题(每题2分,共10题)1. 在C语言中,下列哪个关键字用于定义函数?A. intB. voidC. returnD. function答案:A2. 若有定义int a=5;,则执行语句a+=a-=a*a;后,变量a的值是多少?A. 0B. -20C. -5D. 25答案:C3. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[5] = "Hello";D. char str = "Hello";答案:A4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-nameD. variable_name答案:B5. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlen()B. strlength()C. length()D. strleng()答案:A6. 若有定义int a=1, b=2;,则执行语句a+=b;后,变量a的值是多少?A. 1B. 2C. 3D. 4答案:C7. 在C语言中,以下哪个选项是正确的二维数组声明?A. int arr[3][2];B. int arr[3,2];C. int arr[][2];D. int arr[3][];答案:A8. 在C语言中,以下哪个选项是正确的字符常量?A. 'a'B. "a"C. 'ab'D. "ab"答案:A9. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0)B. if x > 0C. if(x > 0)D. if (x > 0)答案:D10. 在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 (i = 0; i < 10; i++)答案:A二、编程题(每题10分,共1题)11. 编写一个C语言程序,计算并输出100以内所有偶数的和。

c语言基础试题库及答案

c语言基础试题库及答案

c语言基础试题库及答案一、选择题1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言的标准数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,用于实现循环的关键字是:A. whileB. forC. ifD. switch答案:A、B4. C语言中,用于定义函数的关键字是:A. functionB. defC. voidD. int答案:C5. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. int答案:B、C二、填空题1. C语言中,________关键字用于定义一个数组。

答案:int2. 在C语言中,________关键字用于定义一个指针。

答案:*3. C语言中,________关键字用于定义一个函数。

答案:int4. 在C语言中,________运算符用于求两个数的和。

答案:+5. C语言中,________运算符用于判断两个数是否相等。

答案:==三、简答题1. 请简述C语言中函数的定义和调用过程。

答案:函数定义包括函数的返回类型、函数名、参数列表和函数体。

函数调用则是通过函数名和参数列表来调用已定义的函数。

2. 解释C语言中指针的概念及其用途。

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

指针常用于动态内存分配、数组处理和函数参数传递。

四、编程题1. 编写一个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", sum);return 0;}```2. 编写一个C语言函数,用于交换两个整数变量的值。

c语言程序设计考试题库及答案

c语言程序设计考试题库及答案

c语言程序设计考试题库及答案1. 选择题1.1 下列关于C语言的描述,错误的是:A. C语言是一种过程式编程语言B. C语言支持面向对象编程C. C语言支持结构化编程D. C语言具有丰富的库函数答案:B1.2 在C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. voidD. function答案:C1.3 下列选项中,哪个不是C语言中的合法变量名?A. _myVarB. myVar2C. 2ndVarD. var$答案:D2. 填空题2.1 在C语言中,用于定义一个整型变量的关键字是______。

答案:int2.2 C语言中,用于输入数据的库函数是______。

答案:scanf2.3 C语言中,用于输出数据的库函数是______。

答案:printf3. 简答题3.1 简述C语言中数组的定义方式。

答案:在C语言中,数组可以通过指定数据类型和数组大小来定义。

例如,定义一个整型数组可以写作:int arrayName[arraySize];。

3.2 解释C语言中的指针是什么,并给出一个指针的定义示例。

答案:指针是一种变量,它存储的是另一个变量的内存地址。

定义指针的示例:int *ptr; 这里ptr是一个整型指针。

4. 编程题4.1 编写一个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;}```4.2 编写一个C语言函数,实现字符串反转的功能。

答案:```cvoid reverseString(char *str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```。

历年全国计算机等级考试二级C++真题及答案(最新)

历年全国计算机等级考试二级C++真题及答案(最新)

历年全国计算机等级考试二级C++真题及答案(最新)目录2012年9月全国计算机等级考试二级C++笔试试卷 (2)一、选择题(每小题2分,共70分) (2)二、填空题(每空2分,共30分) (7)2012年9月全国计算机等级考试二级笔试C++答案 (10)一、选择题答案 (10)二、填空题答案 (11)2012年3月全国计算机等级考试二级笔试试卷 (11)一、选择题(每小题2分,共70分) (11)二、填空题(每空2分,共30分) (19)2012年3月计算机等级考试二级C++笔试真题答案 (21)一、选择题答案 (21)二、填空题答案 (21)2011年9月全国计算机等级考试二级笔试试卷 (22)一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分) (22)二、填空题(每空2分,共30分) (31)2011年9月全国计算机等级考试二级笔试C++语言程序设计答案及解析 (33)一、选择题答案 (33)二、填空题答案 (39)2011年3月计算机二级考试C++笔试试题 (41)一、选择题 (41)二、填空题 (48)2011年3月全国计算机二级C++笔试试题答案: (51)一、选择题答案 (51)二、填空题答案 (51)2010年9月全国计算机二级C++笔试试题: (51)一、选择题(每小题2分,共70分) (51)二、填空题(每空2分,共30分) (58)2010年9月计算机等级考试二级C++笔试答案 (61)2010年3月计算机等级考试二级C++笔试试题 (62)一、选择题(每小题2分,共70分) (62)二、填空题(每空2分,共30分) (69)2010年3月计算机等级考试二级C++笔试答案 (71)2012年9月全国计算机等级考试二级C++笔试试卷C++语言程序设计(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

c语言经典题目100题

c语言经典题目100题

1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。

蓝桥杯历年c语言试题及答案

蓝桥杯历年c语言试题及答案

蓝桥杯历年c语言试题及答案蓝桥杯历年C语言试题及答案1. 题目一:数组反转要求:编写一个函数,实现对整数数组的反转。

输入:一个整数数组及其长度。

输出:反转后的数组。

答案:```cvoid reverseArray(int arr[], int n) {int temp;for (int i = 0; i < n / 2; i++) {temp = arr[i];arr[i] = arr[n - i - 1];arr[n - i - 1] = temp;}}```2. 题目二:寻找最大数要求:给定一个整数数组,找出其中的最大数。

输入:一个整数数组及其长度。

输出:数组中的最大数。

答案:```cint findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```3. 题目三:计算阶乘要求:编写一个函数,计算给定非负整数的阶乘。

输入:一个非负整数。

输出:该整数的阶乘。

答案:```clong long factorial(int n) {if (n == 0) return 1;long long fact = 1;for (int i = 1; i <= n; i++) {fact *= i;}return fact;}```4. 题目四:字符串反转要求:编写一个函数,实现对字符串的反转。

输入:一个字符串。

输出:反转后的字符串。

答案:```cvoid reverseString(char str[]) {int length = strlen(str);char temp;for (int i = 0; i < length / 2; i++) {temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```5. 题目五:判断素数要求:编写一个函数,判断给定的整数是否为素数。

c语言考试题及答案

c语言考试题及答案

c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言具有跨平台的特性答案:B2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列关于数组的描述中,正确的是:A. 数组必须在程序开始时初始化B. 数组的元素可以是不同的数据类型C. 数组的索引从1开始D. 数组的声明必须指定数组的大小答案:D5. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. define答案:B6. C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. &答案:A7. 下列哪个选项是C语言中合法的注释?A. // 这是一个注释B. /* 这是一个注释 */C. // 这是一个注释/* 这是一个注释 */D. /* 这是一个注释 */答案:A8. C语言中,用于定义一个空指针的值是:A. NULLB. 0C. falseD. none答案:A9. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以存储函数的地址C. 指针可以存储数组的索引D. 指针可以存储指针的地址答案:C10. 在C语言中,用于定义一个字符型指针的声明是:A. char *ptr;B. int *ptr;C. float *ptr;D. double *ptr;答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语法是:______ int array[10];。

答案:int2. 如果一个变量的值是10,那么表达式sizeof(&var)的结果是:______。

考研c语言考试题及答案

考研c语言考试题及答案

考研c语言考试题及答案一、选择题(每题2分,共10分)1. 下列关于C语言中变量的描述,错误的是:A. 变量必须先声明后使用B. 变量的声明可以放在函数内部C. 变量的声明必须放在函数的开始处D. 变量的声明可以放在语句中间答案:D2. 在C语言中,以下哪个选项不是合法的字符串常量?A. "Hello"B. 'Hello'C. "123"D. "C语言"答案:B3. 下列关于数组的描述,正确的是:A. 数组必须初始化B. 数组可以声明为局部变量C. 数组的大小在声明后不能改变D. 数组可以作为函数的参数答案:C4. 下列关于指针的描述,错误的是:A. 指针可以指向任何类型的数据B. 指针可以作为函数的参数C. 指针不能作为函数的返回值D. 指针可以指向另一个指针答案:C5. 下列关于函数的描述,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以递归调用D. 函数的参数可以是数组答案:B二、填空题(每题2分,共10分)1. 在C语言中,用于定义一个整型变量的关键字是_________。

答案:int2. 以下代码段的输出结果是_________。

```c#include <stdio.h>int main() {int a = 10;printf("%d", a++);return 0;}```答案:103. 在C语言中,用于定义一个字符型数组的声明语句是_________。

答案:char array_name[size];4. 以下代码段中,变量b的值是_________。

```cint a = 5, b;b = a;```答案:55. 在C语言中,用于声明一个指向整型数据的指针的语句是_________。

答案:int *p;三、简答题(每题5分,共10分)1. 请简述C语言中指针和数组的关系。

研究生c语言试题及答案

研究生c语言试题及答案

研究生c语言试题及答案研究生C语言试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个函数用于将一个浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A3. 在C语言中,以下哪个选项不是合法的变量名?A. _nameB. name_C. 2nameD. name答案:C4. 下列关于指针的描述中,错误的是?A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数参数D. 指针可以作为函数返回值答案:B5. 在C语言中,以下哪个选项不是控制语句?A. ifB. switchC. forD. typedef答案:D6. 以下哪个函数用于打开文件?A. fopenB. fcloseC. freopenD. fgetc答案:A7. C语言中,以下哪个选项表示逻辑与?A. &&B. ||C. !D. %答案:A8. 在C语言中,以下哪个选项不是合法的数组声明?A. int arr[10];B. int arr[] = {1, 2, 3};C. int arr[10] = {1, 2, 3};D. int arr[10] = {1, 2};答案:D9. 下列关于C语言函数的描述中,错误的是?A. 函数可以有返回值B. 函数可以没有返回值C. 函数可以有多个返回值D. 函数可以有多个参数答案:C10. 在C语言中,以下哪个关键字用于定义一个枚举?A. enumB. unionC. structD. typedef答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个空指针的关键字是________。

答案:NULL2. 在C语言中,________关键字用于定义一个宏。

答案:#define3. C语言中,________关键字用于定义一个联合体。

专升本C语言历年试题及答案

专升本C语言历年试题及答案

专升本C语言历年试题及答案一、选择题(每题2分,共20分)1. 下面哪个选项是C语言中的关键字?A. intB. integerC. floatD. double答案:A2. C语言中,用于定义数组的关键字是?A. listB. arrayC. vectorD. set答案:B3. 在C语言中,哪个函数用于计算数组的长度?A. length()B. size()C. sizeof()D. count()答案:C4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. =5. C语言中,用于实现循环结构的关键字是?A. loopB. repeatC. whileD. do答案:C6. 在C语言中,以下哪个选项不是标准输入输出函数?A. printf()B. scanf()C. cout()D. getchar()答案:C7. 下列哪个选项是C语言中定义函数的关键字?A. functionB. defC. voidD. int答案:C8. 在C语言中,以下哪个选项不是合法的变量名?A. _nameB. name123C. 123nameD. name$答案:C9. C语言中,用于定义指针的关键字是?B. refC. pointerD. *答案:D10. 下列哪个选项不是C语言中的预处理指令?A. #includeB. #defineC. #importD. #pragma答案:C二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:________。

答案:int variable_name;2. 如果要将一个变量的值赋给另一个变量,应该使用运算符________。

答案:=3. 在C语言中,表示逻辑与的运算符是________。

答案:&&4. 用于计算两个整数相加的函数是________。

答案:add()5. C语言中,用于定义一个函数的关键字是________。

C程序设计试题汇编

C程序设计试题汇编

c程序设计试题汇编C程序设计试题汇编一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是正确的数据类型?A. IntegerB. intC. RealD. float2. 以下哪个语句可以正确地声明一个整型变量?A. int var;B. var int;C. int = var;D. var = int;3. C语言中的数组下标是从哪个数字开始的?A. 0B. 1C. -1D. 随机数4. 以下哪个是正确的C语言函数定义?A. int func(int a, int b) { return a + b; }B. int func(int, int) { return a + b; }C. func(int a, int b) { return a + b; }D. int func(a, b) { return a + b; }5. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. void6. 以下哪个是C语言中的循环结构?A. forB. whileC. do-whileD. 所有选项都是7. 在C语言中,以下哪个操作符用于取模运算?A. %B. /C. *D. -8. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. ~D. 所有选项都是9. 在C语言中,哪个关键字用于定义一个结构体?A. structB. typeC. classD. union10. 以下哪个是C语言中的输入输出函数?A. printf()B. print()C. input()D. read()二、填空题(每空2分,共20分)11. 在C语言中,字符常量用____表示。

12. 一个C语言程序的执行从____函数开始。

13. C语言中的字符串以____字符结尾。

14. 一个变量的存储类别可以是自动的(auto)或____的。

15. 在C语言中,____运算符用于连接字符串。

c语言程序设计比赛试题及答案

c语言程序设计比赛试题及答案

c语言程序设计比赛试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法整数常量?A. 0x1AB. 01AC. 0b1010D. 1.23答案:A2. C语言中,哪个关键字用于定义一个函数?A. structB. intC. voidD. return答案:B3. 下列哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释答案:B4. C语言中,哪个运算符用于求两个数的和?A. +B. -C. *D. /答案:A5. 在C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A6. C语言中,哪个关键字用于定义一个枚举类型?A. structB. unionC. enumD. typedef答案:C7. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. variable$2答案:B8. 在C语言中,哪个关键字用于定义一个指针?A. intB. floatC. charD. *答案:D9. C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A10. 在C语言中,哪个函数用于计算字符串的长度?A. strcpyB. strcatC. strcmpD. strlen答案:D二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型数组的关键字是________。

答案:int2. C语言中,用于定义一个字符型数组的关键字是________。

答案:char3. C语言中,用于定义一个浮点型数组的关键字是________。

答案:float4. C语言中,用于定义一个双精度浮点型数组的关键字是________。

答案:double5. C语言中,用于定义一个字符串的关键字是________。

c语言程序设计考研试题及答案

c语言程序设计考研试题及答案

c语言程序设计考研试题及答案一、单项选择题(每题2分,共20分)1. 下列关于C语言中变量声明的描述,不正确的是:A. 变量声明可以出现在函数内部B. 变量声明必须在函数的开始处C. 变量声明可以出现在语句中间D. 变量声明可以出现在语句的任何位置答案:C2. C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 在C语言中,下列哪个运算符用于计算两个数的和?A. %B. +C. &&D. ||答案:B4. 下列哪个函数用于将字符串从源位置复制到目标位置?A. strcpyB. strncpyC. strcatD. strcmp答案:A5. 在C语言中,用于声明一个指针的关键字是:A. intB. charC. floatD. void答案:B6. 下列关于C语言中数组的描述,正确的是:A. 数组可以是多维的B. 数组的索引从1开始C. 数组的大小在运行时确定D. 数组不能存储结构体答案:A7. 在C语言中,下列哪个函数用于打开一个文件?A. fopenB. fcloseC. fgetcD. fputc答案:A8. C语言中,下列哪个关键字用于声明一个函数?A. intB. charC. voidD. return答案:C9. 下列关于C语言中循环的描述,不正确的是:A. for循环可以嵌套使用B. while循环可以无限循环C. do-while循环至少执行一次D. for循环的初始化部分不能声明变量答案:D10. 在C语言中,下列哪个关键字用于定义一个宏?A. defineB. macroC. includeD. typedef答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符常量的是单引号,例如:'A'。

2. C语言中,用于定义一个字符串常量的是双引号,例如:"Hello"。

C语言全部考试系统题库含答案

C语言全部考试系统题库含答案

目录目录 (1)单元练习题一C语言基础知识 (3)一、判断题 (3)二、单项选择题 (4)三、读程序选择题 (7)四、程序填空题 (8)五、编程题 (10)单元练习题二C语言程序结构 (10)一、判断题 (10)二、单项选择题 (11)三、读程序选择题 (18)四、程序填空题 (30)五、编程题 (35)单元练习题三数组 (36)一、判断题 (36)二、单项选择题 (37)三、读程序选择题 (39)四、程序填空题 (43)五、编程题 (49)单元练习题四函数 (49)二、单项选择题 (50)三、读程序选择题 (52)四、程序填空题 (60)五、编程题 (63)单元练习题五预处理 (63)一、判断题 (63)二、单项选择题 (64)三、读程序选择题 (64)四、程序填空题 (65)五、编程题 (65)单元练习题六指针 (66)一、判断题 (66)二、单项选择题 (66)三、读程序选择题 (67)四、程序填空题 (74)五、编程题 (77)单元练习题七结构体与共用体 (78)一、判断题 (78)二、单项选择题 (78)三、读程序选择题 (79)四、程序填空题 (83)单元练习题八文件 (84)一、判断题 (84)二、单项选择题 (84)三、读程序选择题 (84)四、程序填空题 (85)五、编程题 (87)第一章C语言基础知识(C语言概述、算法、数据类型运算符表达式、位运算)一、判断题(正确的填A,错误的填B)R1.在C语言中,逗号运算符的优先级最低。

(A)2.在C语言可执行程序的开始执行点是程序中第一个函数。

(B)3.“5ch”是合法的变量名。

(B)4.C语言程序书写格式自由,一行可以写几个语句,一个语句可以分写在多行上。

(A)5.当输入数据时,必须指明变量的地址,如scanf("%f",&f) (A)N6.表达式i++与++i在任何场合功能完全相同。

(B)7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。

考研c语言试题及答案

考研c语言试题及答案

考研c语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以嵌套定义D. 函数可以递归调用答案:C3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列哪个选项不是C语言中的合法变量名?A. _nameB. 2namesC. nameD. name2答案:B5. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello"B. 'Hello'C. "HelloD. 'Hello'答案:A6. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio"答案:C7. 下列关于C语言数组的描述中,错误的是?A. 数组可以是多维的B. 数组的索引从0开始C. 数组的大小在声明时确定D. 数组可以动态分配答案:D8. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int *p[];C. int (*p)[10];D. int (*p)();答案:A9. 下列关于C语言指针的描述中,错误的是?A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针可以存储一个值答案:D10. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI 3.14159C. #define PI 3.14159D. #define PI 3.14159答案:A二、填空题(每题2分,共10分)1. 在C语言中,使用____关键字可以定义一个枚举类型。

历年全国计算机二级c考试真题及答案

历年全国计算机二级c考试真题及答案

全国计算机等级考试二级笔试试卷公共基础知识及C++语言程序设计(考试时间90分钟,满分100)分)一、选择题((1)~(35)每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1) 下面叙述正确的是A)算法的执行效率与数据的存储结构无关B)算法的空间复杂度是指算法程序中指令(或语句)的条数C)算法的有穷性是指算法必须能在执行有限个步骤之后终止D)以上三种描述都不对(2)以下数据结构中不属于线性数据结构的是A)队列B)线性表C)二叉树D)栈(3)在一棵二叉树上第5层的结点数最多是A)8 B)16 C)32 D)15(4)下面描述中,符合结构化程序设计风格的是A)使用顺序、选择与重复(循环)三种基本控制结构表示程序的控制逻辑B)模块只有一个入口,可以有多个出口C)注重提高程序的执行效率D)不使用goto语句(5)下面概念中,不属于面向对象方法的是A)对象B)继承C)类D)过程调用(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是A)可行性分析B)需求分析C)详细设计D)程序编码(7)在软件开发中,下面任务不属于设计阶段的是A)数据结构设计B)给出系统模块结构C)定义模块算法D)定义需求并建立系统模型(8)数据库系统的核心是A)数据模型C)软件工具B)数据库管理系统D)数据库(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库设计是指设计数据库管理系统C)数据库技术的根本目标是要解决数据共享的问题D)数据库系统中,数据的物理结构必须与逻辑结构一致(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是A)内模式B)外模式C)概念模式D)逻辑模式(11)关于面向对象的程序设计方法,下列说法正确的是A)“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B)“多态性”指的是对象的状态会根据运行时要求自动变化C)基类的私有成员在派生类的对象中不可访问,也不占内存空间D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用(12)判断字符型变量ch是否为大写英文字母,应使用表达式A ) ch>='A' & ch<='Z'B ) ch<='A' ||ch>='Z'C ) 'A'<=ch<='Z'D ) ch>='A' && ch<='Z'(13)已知下列语句中的x与y都是int型变量,其中错误的语句A ) x=y++;B ) x=++y;C ) (x+y)++;D ) ++x=y;(14)执行语句序列int n;cin >> n;switch(n){ case 1:case 2: cout << '1';case 3:case 4: cout << '2'; break;default: cout << '3';时,若键盘输入1,则屏幕显示A)1 B)2 C)3 D)12(15)下列程序的输出结果是#include <iostream>using namespace std;int main()char a[] = "Hello, World";char *ptr = a;while (*ptr)if (*ptr >= 'a' && *ptr <= 'z')cout << char(*ptr + 'A' -'a');else cout << *ptr;ptr++;return 0;A ) HELLO, WORLDB ) Hello, WorldC ) hELLO, wORLD D ) hello, world(16)已知:int m=10;在下列定义引用的语句中,正确的是A ) int &x=m;B )int y=&m;C )int &z;D ) int &t=&m;(17)下列函数原型声明中错误的是A ) void Fun(int x=0, int y=0);B ) void Fun(int x, int y);C ) void Fun(int x, int y=0);D ) void Fun(int x=0, int y);(18)已知程序中已经定义了函数test,其原型是int test(int, int, int);,则下列重载形式中正确的是A ) char test(int,int,int);B ) double test(int,int,double);C ) int test(int,int,int=0);D ) float test(int,int,float=3.5F);(19)有以下程序#include<iostream>int i = 0;void fun()static int i = 1;std::cout<<i++<<',';std::cout<<i<<',';int main()fun(); fun();return 0;程序执行后的输出结果是A)1,2,1,2, B)1,2,2,3, C)2,0,3,0, D)1,0,2,0,(20)已知函数f的原型是:void f(int *a, long &b); 变量v1、v2的定义是:int v1;long v2;,正确的调用语句是A) f(v1, &v2); B) f(v1, v2);C) f(&v1, v2); D) f(&v1, &v2);(21)有以下类定义class MyClasspublic:MyClass(){cout<<1;}则执行语句MyClass a, b[2], *p[2];后,程序的输出结果是A)11 B)111 C)1111 D)11111(22)关于友元,下列说法错误的是A)如果类A是类B的友元,那么类B也是类A的友元B)如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C)友元关系不能被继承D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元(23)关于动态存储分配,下列说法正确的是A)new与delete是C++语言中专门用于动态内存分配与释放的函数B)动态分配的内存空间也可以被初始化C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new(24)有以下程序#include<iostream>using namespace std;class MyClasspublic:MyClass(int n){number = n;}//拷贝构造函数MyClass(MyClass &other){ number=other.number;}~MyClass(){}private:int number;MyClass fun(MyClass p)MyClass temp(p);return temp;int main()MyClass obj1(10), obj2(0);MyClass obj3(obj1);obj2=fun(obj3);return 0;程序执行时,MyClass类的拷贝构造函数被调用的次数是A)5 B)4 C)3 D)2(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的A)公有成员与私有成员B)私有成员与保护成员C)公有成员与保护成员D)私有成员、保护成员与公有成员(26)在C++中用来实现运行时多态性的是A)重载函数B)析构函数C)构造函数D)虚函数(27)一个类可以同时继承多个类,称为多继承。

历年C语言考试题库及答案

历年C语言考试题库及答案

C语言理论上机考试选择题部分(共200题,仅针对11级定向专业)1、下面程序的输出是___D______#include<>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是__D______.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是______A____.A) '\t' B) "A" C) 65 D) A4、表达式: 10!=9的值是________D____.A) true B) 非零值C) 0 D) 15、C语言提供的合法的数据类型关键字是_____B____.A) Double B) short C) integer D) Char6、字符(char)型数据在微机内存中的存储形式是__D__.A) 反码B) 补码C) EBCDIC码D) ASCII码7、C语言程序的基本单位是_____C______.A) 程序行B) 语句C) 函数D) 字符8、设int a=12,则执行完语句a+=a-=a*a后,a的值是____D____A) 552 B) 264 C) 144 D) -2649、执行下面程序中的输出语句后,输出结果是____B__.#include<>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 1010、下面程序的输出是____B______.#include<>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 2411、下面程序的输出的是_____C____.#include<>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值12、已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.#include<>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值13、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为____D__.A) a<>0 B) !a C) a=0 D) a14、以下程序的输出结果是____D_____.#include<>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 915、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____.A) 1 B) 0 C) 4 D) 316、为表示关系x≥y≥z,应使用C语言表达式___A___.A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z)C) (x>=y>=z) D) (x>=y) & (y>=z)17、C语言中非空的基本数据类型包括____B____.A) 整型,实型,逻辑型B) 整型,实型,字符型C) 整型,字符型,逻辑型D) 整型,实型,逻辑型,字符型18、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是____A___.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值19、阅读下面的程序#include<>void main(){char ch;scanf("%3c",&ch);printf("%c",ch);}如果从键盘上输入abc<回车>则程序的运行结果是__A_____.A) a B) b C) c D) 程序语法出错20、阅读下面的程序#include<>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是____D____.A) 1,19 B) -1,19 C) 1,17 D) -1,1721、阅读下面的程序#include<>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是______C____.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1122、已知a=12,则表达式a+=a-=a*=a的结果是_____A__.A) 0 B) 144 C) 12 D) -26423、若已定义int a,则表达式a=10,a+10,a++的值是__B_.A) 20 B) 10 C) 21 D) 1124、阅读下面的程序#include<>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是____D____.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4525、下面程序的输出结果是____D____.#include<>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,326、下面程序的输出结果是____A____.#include<>void main(){int a=5,b=3;float x=, y=;printf("%d,%d\n",a+b!=a-b,x<=(y-=);}A) 1,0 B) 0,1 C) 1,1 D) 0,027、执行下面程序段后,输出结果是____A____.int a;int b=65536;a=b;printf("%d\n",a);A) 65536 B) 0 C) -1 D) 128、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是____B_____.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1029、已知有double型变量x=,y=,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4 的值是_____B____. A) B) 2.5 C) D) 030、若已定义x和y是整型变量,x=2;,则表达式y=+x/2的值是____C____.A) B) 5 C) 3 D)31、以下程序的输出结果是____D____.#include<>void main(){int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,1332、设有以下语句:int x=10;x+=3+x%(3),则x的值是.____A_____A) 14 B) 15 C) 11 D) 1233、若d为double型变量,则表达式d=1,d+5,d++的值是_____D__.A) 1 B) 6.0 C) D)34、表达式5!=3的值是____D____.A) T B) 非零值C) 0 D) 135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a 的值______A____.A) 0 B) 1 C) 12 D) 636、若有定义int x=3,y=2和float a=,b=,则表达式:(x+y)%2+(int)a/(int)b的值是__D__.A) 0 B) 2 C) D) 137、在C语言中,以下叙述不正确的是_____A____.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用38、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____C____.A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种39、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y值的数据类型是___D____.A) float B) char C) int D) double40、一个C语言的执行是从_____A______.A) 本程序的主函数开始,到本程序的主函数结束B) 本程序的第一个函数开始,到本程序的最后一个函数结束C) 本程序的主函数开始,到本程序的最后一个函数结束D) 本程序的第一个函数开始,到本程序的主函数结束41、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是____A____.A) 10<a<15 B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15)42、下列程序执行后的输出结果是_____C____.#include <>void main( ){ int a=5,b=60,c;if (a<b){c=a*b;printf("%d*%d=%d\n",b,a,c);}else{c=b/a;printf("%d/%d=%d\n",b,a,c);}}A) 60/5=12 B) 300 C) 60*5=300 D) 1243、如果c为字符型变量,判断c是否为空格不能使用____A____.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')44、运行下面程序时,若从键盘输入"3,5<CR>",则程序的输出结果是____D____.#include <>void main( ){int x,y;scanf("%d,%d",&x,&y);if (x==y)printf("x==y");else if (x>y)printf("x>y");elseprintf("x<y");}A) 3<5 B) 5>3 C) x>y D) x<y45、运行下面程序时,若从键盘输入数据为"6,5,7<CR>",则输出结果是____C___.#include <>void main( ){ int a,b,c;scanf("%d,%d,%d",&a,&b,&c);if (a>b)if (a>c)printf("%d\n",a);elseprintf("%d\n",c);elseif (b>c)printf("%d\n",b);elseprintf("%d\n",c);}A) 5 B) 6 C) 7 D) 不定值46、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是____A____.#include <>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1047、运行下面程序时,从键盘输入"<CR>",则输出结果是___B_____.#include <>void main( ){ float a,b;scanf("%f",&a);if (a< b=;else if ((a< && (a!=) b=(a+;else if (a< b=2;else b=;printf("%f\n",b);}A) B)C) D)48、执行下面程序后,运行结果是____A____.#include <>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=149、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是___A___.#include <>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值50、运行下面程序时,从键盘输入字母H,则输出结果是_____C___.#include <>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning! C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!51、执行下列程序段后的输出结果是_____A____.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<yy:x);A) 3 B) 2 C) 1 D) 452、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')ch+32:ch的值是__B___.A) Z B) a C) z D) A53、下面程序的输出结果是____C____.#include <>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 054、运行下面程序时,若从键盘输入"5 <CR>",则程序的输出结果是_____B___.#include <>void main( ){ int a ;scanf("%d",&a);if (a++>5)printf("%d\n",a);else printf("%d\n",a--) ;}A) 7 B) 6 C) 5 D) 455、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是____B___.#include <>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2056、下列程序的执行结果是_____D____.#include <>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,157、假定等级和分数有以下对应关系:等级:A 分数:85~100等级:B 分数:60~84等级:C 分数:60 以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是____D____.A) switch (grade){case 'A':printf("85--100\n");case 'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf("等级错误!\n");}B) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf(" 等级错误!\n");}C) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60以下\n");default:printf("等级错误!\n");}D) switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60以下\n");break;default:printf("等级错误!\n");}58、能够完成如下函数计算的程序段是__B____.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;59、有如下程序#include <>void main( ){ float x=,y;if(x< y=;else if (x< y=x;else y=;printf("%f\n",y);}该程序的输出结果是____C_____.A) B)C) D)60、以下程序的执行结果是___B_____.#include <>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird61、以下程序的执行结果是____A____.#include <>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2562、有如下程序:#include <>void main( ){ int a=2,b=-1,c=2;if (a<b)if (b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是___C_____.A) 0 B) 1 C) 2 D) 363、下列程序执行后的输出结果是____B____.#include <>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息64、有如下程序#include <>void main( ){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是______A____.A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=265、下面程序的输出结果是____C_____.#include <>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 066、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)w:x; m=(m<y)m:y; m=(m<z)m:z;则该程序段执行后,m的值是____D_____.A) 4 B) 3 C) 2 D) 167、以下程序的输出结果是___D______.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 168、若执行下面的程序从键盘上输入9,则输出结果是.______B________#include <>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 869、以下程序输出结果是_____D_____.#include <>void main( ){ int m=4;if (++m>5) printf("%d\n",m--);else printf("%d\n",--m);}A) 7 B) 6 C) 5 D) 470、若执行下面的程序从键盘上输入5,则输出结果是. #include <>void main( ){int x;scanf("%d",&x);if (x++>5) printf("%d\n",x);else printf("%d\n",x--);}A) 7 B) 6 C) 5 D) 471、以下程序段运行结果是____A____.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<yy:x);A) 1 B) 2 C) 4 D) 不确定的值72、有以下程序#include <>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是____A____.A) 2,1 B) 3,2 C) 4,3 D) 2,-173、运行下面程序时,若从键盘输入数据为"123",则输出结果是___C____.#include ""void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,174、执行下列程序后的输出结果是___D____.#include <>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<ak:c<bc:a);}A) 4 B) 3 C) 2 D) 175、以下条件表达式中能完全等价于条件表达式x的是____B___.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)76、若运行下面程序时,给变量a输入15,则输出结果是___A___.#include <>void main( ){ int a,b;scanf("%d",&a);b=a>15a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1077、运行下面程序后,输出是___D___.#include <>void main( ){ int k=-3;if (k<=0) printf("****\n");else printf("####\n")}A) ####B) ****C) ####****D) 有语法错误不能通过编译78、执行下面程序的输出结果是____C____.#include <>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####79、为了避免嵌套的if-else语句的二义性,C语言规定else总是与___C___组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if80、设x 、y 、z 、t均为int型变量,则执行以下语句后,t的值为____C_____.x=y=z=1;t=++x || ++y && ++z;A) 不定值B) 4 C) 1 D) 081、以下程序段____C______.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误82、对下面程序段描述正确的是___B____.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次83、下面程序段的输出结果是____C____.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息84、下面程序的运行结果是____B____.#include<>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,985、下面程序段的运行结果是____B______.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息86、下面程序段的运行结果是___D_____.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,2087、下面程序的运行结果是___B_____.#include<>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 688、函数pi的功能是根据以下近似公式求π值:____C______(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)请填空,完成求π的功能。

c语言历年真题及答案

c语言历年真题及答案

c语言历年真题及答案【篇一:c语言试题及答案】t>1. 单项选择题(1) c 语言是在 b 语言的基础上产生的。

a. ab. bc. dd. e(2) 在 c 语言中,每个语句必须以 d 结束。

a. 回车符b. 冒号c. 逗号d. 分号(3) 标识符和关键字间,要用c 隔开。

a. 回车符b. 冒号c. 空格d. 分号(4) 用 c 语言编写的源文件经过编译,若没有产生编译错误,则系统将( b )。

a. 生成可执行目标文件b. 生成目标文件c. 输出运行结果d.自动保存源文件(5) 下列说法中正确的是( b )。

a. 由于 c 源程序是高级语言程序,因此一定要在 tc 软件中输入b. 由 c 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入c. 由于c 程序是高级语言程序,因此输入后即可执行d. 由于 c 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( a )。

a. c 语言程序由主函数和 0 个或多个函数组成b. c 语言程序由主程序和子程序组成c. c 语言程序由子程序组成d. c 语言程序由过程组成(7) 下列说法中错误的是( d )。

a. 主函数可以分为两个部分:主函数说明部分和主函数体b. 主函数可以调用任何非主函数的其他函数c. 任何非主函数可以调用其他任何非主函数d. 程序可以从任何非主函数开始执行2. 填空题(1) c 语言只有 32个关键字和 9 种控制语句。

(2) c 语言是一种“ 中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行c 语言程序。

(4) 在 c 语言程序中允许出现的字符集是 ascii码字符集。

(5) c 语言的程序中有特殊含义的英语单词称为保留字。

(6) c 语言标识符的长度是前8位有效。

(7) c 语言中,标识符的定义规则是以字母或下划线为开头。

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

2011学年春季学期一、单选题(每题2分,共20分)1.在C语言中,变量所分配的内存空间大小______。

A)均为一个字节B)由用户定义C)由变量的类型决定D)是任意的2.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是______。

A)1 B)0 C)2 D)不知道a的值,不能确定3.下列运算符中优先级最高的是______。

A)!= B)%= C)-> D) ++4.下面的for语句________。

for(x=0,y=10;(y>0)&&(x<4);x++,y-- );A)循环执行4次B)循环执行3次C)是无限循环D)循环次数不定5.以下选项中与if(a==1)a=b;else a++; 语句功能不同的switch语句是______。

A)switch(a) B)switch(a==1){case 1:a=b;break; {case 0:a=b;break;Default:a++; case 1:a++;} }C)switch(a) D)switch(a==1){ default:a++; break; {case 1:a=b;break;case 1:a=b; case 0:a++;} }6.下面程序的输出结果是_______。

void main(){int a=10,b=20,c=30;if(a>b) a=b;b=c;c=a;printf("%d,%d,%d\n",a,b,c);}A)10,20,30 B)10,30,20 C) 10,30,10 D) 30,20,107.有定义:char *p[20]; 则p是______。

A)指针数组名B)指针变量名C)字符变量名D)函数名8.以下程序运行时输出结果是_______。

#include<stdio.h>void fun(char *c,int d){ *c=*c+1;d++;printf("%c,%c,",*c,d);}void main(){ char b='a',a='A';fun(&b,a); printf("%c,%c\n",b,a);}A)b,B,b,A B)b,B,B,A C) b,B,b,B D) b,B,a,A9.在以下定义和语句,能给w中year成员赋值1990的语句是_______。

struct workers{int num;char name[20];char sex;struct{int day,manth,year;}s;};struct workers w,*pw; pw=&w;A)*pw.s.year=1990 B)w.year=1990C) pw->year=1990 D) w.s.year=199010.有定义:struct{ long int i;char c;float a;}test;则sizeof(test)的值是______。

A)4 B)9 C)13 D)17二、填空题(每空2分,共20分)1.表达式a+=a-=a=9的值是______【1】_______。

2.写出C语言中所有的逻辑运算符______【2】______。

3.C语言中break语句的功能是_______【3】_______。

4.下列循环结构的循环体,在程序运行时,将被执行______【4】______次。

for(a=0,p=2;p;a++) p=a;5.如下程序段执行后,a的值为______【5】_______int *p,a=10,b=15;p=&a; a=*p+b;中国海洋大学2011学年春季学期期末考试试卷6.函数fun的功能是:在x所指向的有n个数据的一维数组中找出最小值并作为函数值返回。

请完善程序。

int fun(int *x,int n){int k=0,i;for(i=0;i<n;i++)if(x[i]<x[k]) ______【6】_______;7.以下函数的功能是:求x的y次方,请填空。

#include<math.h>double fun( double x,int y){ int i; double z;for(i=1,z=1;i<=fabs(y);i++)z=______【7】_______;return y>=0?z:1/z;}8.下面程序是从键盘输入一行字符,统计其中单词个数,单词之间用空格分隔。

请完善程序。

void main(){ char s[80];int i,num=0;gets(s);if(______【8】_______) num++;for(i=1;s[i]!='\0';i++)if(s[i]!=' '&&s[i-1]==' ')num++;printf("There are %d words.\n",num);}9.以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请完善程序。

void main(){int i,j;for(i=0; ______【9】_______;i++){ j=i*10+6;if(______【10】_______) printf("%5d",j);}}三、读程序写结果(每题2分,共20分)1. #define SUB(a) (a)-(a)void main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}2. #include<stdio.h>int fun(){ static int x=2;x*=2;return x;}void main(){ int i,s=2;for(i=1;i<=2;i++){ s=fun(); printf("%d ",s);}}3. void main(){ if( 2*2 == 5<2*2 == 4) printf("Yes\n");else printf("No\n");}4.void main(){char c[]="4+"; int s;switch(c[0]){case '5':s=100;break;case '4':switch(c[1]){ case '+':s=90;break;case '-':s=70;break;default:s=80;}case '3':s=60;break;case '2':case '1':s=50;}printf("s=%d\n",s);}中国海洋大学2011学年春季学期期末考试试卷计算机基础部《C程序设计》课程试题(A卷)共8 页第 5 页5. void main(){ char a[]="YouAndMe",*p=a;p+=3; puts(p);void fun(){ a=100; b=200; }void main(){ int a=5, b=7;fun();printf("%d %d \n", a,b);}7. void main(){char str[]="05326678"; int i;for(i=0;str[i];i++)str[i]=(str[i]-48+5)%10+48;puts(str);}8. void main(){ char s[20]="abcd";char *p=s; p++;puts(strcat(p,"ABCD"));}9. #include<stdio.h>void main(){ int sum=0,i;for(i=1;i<=10;i++)if(i%2) sum+=i;printf("sum=%d\n",sum);}10.void main(){char a[30]="ONE WORLD,one dream!",*p;int i;for(p=a;*p;p++){if(*p>='a'&&*p<='z')*p=*p-32;if(*p>='A'&&*p<='Z')*p=*p+32;}puts(a);}四、编程题(分值依次为6、7、8、9、10分,共40分)1.商场促销,购物每满100元减20元,而每满500则再减20元。

如购770元商品,折扣后只需要付款610元。

编程实现:输入一个购物金额,计算输出实付款值。

(6分)2.编写函数double fun(double x,double y),计算两参数平方差的绝对值,做为函数返回值。

(7分)3. 编程实现:键盘输入数据到变量n,计算并输出n~2*n之间的所有奇数和。

例如,当输入n=7时,输出7+9+11+13=20。

(8分)4.输入一个英语的句子(以回车结束输入),将句子中各单词分行打印出来,一行打印一个单词。

单词之间只以空格分隔。

(9分)5. 编程输出[m,n]之间所有的素数,m,n通过键盘输入。

(10分)一、单选题(每题2分,共20分)(请将所选答案涂黑如 A B C D )1.A B C D 2.A B C D 3.A B C D 4.A B C D5.A B C D 6.A B C D 7.A B C D 8.A B C D9.A B C D 10.A B C D二、填空题(每空2分,共20分)注意题号与空格号不一致,以空格编号为准【1】0 【2】&& || !【3】跳出所在的循环或switch结构执行后续语句【4】 1【5】25 【6】k=i【7】z*x 【8】s[0]=’'【9】i<10 【10】j%3==0三、读程序写结果(每题2分,共20分)1. -202. 4 83. No4. s=605. AndMe6. 5 77. 50871123 8. bcdABCD9. sum=25 10. one world,one dream!四、编程题(分值依次为6、7、8、9、10分,共40分)2011学年秋季学期一、单选题(每题2分,共20分)1.以下叙述正确的是________。

相关文档
最新文档