湖南省计算机二级考试(C语言程序设计题附答案)01
计算机二级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语言考试试题及答案

计算机二级c语言考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name答案:C3. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A4. 若有定义:int a = 5;,则执行以下语句后变量a的值是多少?```ca += (a / 2) + 1;```A. 8C. 6D. 5答案:B5. 在C语言中,以下哪个选项是正确的文件打开模式?A. "r+"B. "w+"C. "a+"D. "b+"答案:B6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. !=答案:A7. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. voidD. return答案:C8. 若有定义:char ch = 'A';,则执行以下语句后变量ch的ASCII 值是多少?```cch = ch - 'a' + 'A';```B. 97C. 66D. 98答案:A9. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strncpyC. strcatD. strcmp答案:A10. 下列哪个选项是C语言中的正确注释方式?A. /* This is a comment */B. // This is a commentC. /* This is a comment */D. # This is a comment答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个数组。
计算机二级c语言考试真题及答案详解

计算机二级c语言考试真题及答案详解一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12.3L答案:A2. 若有定义int a=1, b=2;,则以下哪个表达式的值不为真?A. a<bB. a<=bC. a>bD. a!=b答案:C3. 在C语言中,以下哪个选项是合法的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\0"答案:A4. 下列哪个函数不能正确计算数组元素的总和?A. sum = 0; for(i=0; i<n; i++) sum += array[i];B. sum = 0; for(i=0; i<n; i++) sum = sum + array[i];C. sum = 0; for(i=0; i<n; i++) sum = array[i];D. sum = 0; for(i=0; i<n; i++) sum += array[i];答案:C5. 在C语言中,以下哪个选项是合法的函数声明?A. int add(int, int);B. int add();C. int add(int a, int b);D. int add(a, b);答案:C6. 若有定义int a[10];,则以下哪个表达式是合法的数组元素访问?A. a[10]B. a[-1]C. a[3.5]D. a[3]答案:D7. 在C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int *ptr[];C. int ptr*;D. int ptr[];答案:A8. 若有定义int x=10;,则以下哪个表达式是合法的赋值语句?A. x = x + 1;B. x = 1 + x;C. x = x++;D. x = ++x;答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do {} while(0)D. for(;;) {}答案:D10. 若有定义int a[5] = {1, 2, 3, 4, 5};,则以下哪个表达式是合法的数组元素访问?A. a[5]B. a[-1]C. a[2.5]D. a[2]答案:D11. 在C语言中,以下哪个选项是合法的switch语句?A. switch(x) { case 1: break; }B. switch(x) { default: break; }C. switch(x) { case 1: case 2: break; }D. switch(x) { case 1: default: break; }答案:C12. 若有定义int x=5;,则以下哪个表达式是合法的自增运算?A. x++;B. ++x;C. x--;D. --x;答案:A13. 在C语言中,以下哪个选项是合法的函数原型声明?A. void func();B. int func(int);C. void func(int a);D. All of the above答案:D14. 若有定义int a=3;,则以下哪个表达式是合法的位运算?A. a & 2B. a | 2C. a ^ 2D. All of the above答案:D15. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. All of the above答案:A二、编程题(每题30分,共60分)1. 编写一个函数,计算并返回一个整数数组中所有元素的和。
计算机二级C语言程序设计试题及答案

计算机二级C语言程序设计试题及答案尽管提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进展编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
今天,特意为大家推荐C语言程序设计试题及答案,一起看看吧!1.C语言中,关系表达式和逻辑表达式的值是( B ) 。
A、0B、 0或1C、 1D、‘T’或’F’2. 下面( D )表达式的值为4.A、 11/3B、 11.0/3C、 (float)11/3D、 (int)(11.0/3+0.5)【解析】(1)相同数据类型的元素进展数学运算(+、-、*、/)得到结果还保持原数据类型。
(2)不同数据类型的元素进展数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。
选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数局部全部舍掉,仅保存整数,因此11/3=3.选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B11.0/3=3.666666选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数局部全部舍掉,结果为43.设整型变量 a=2,那么执行以下语句后,浮点型变量b的值不为0.5的是( B )A、b=1.0/aB、b=(float)(1/A、C、b=1/(float)aD、b=1/(a*1.0)4. 假设“int n; float f=13.8;”,那么执行“n=(int)f%3”后,n的值是(A)A、1B、4C、4.333333D、4.6【解析】“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数局部舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为15. 以下对一维数组a的正确说明是: DA、char a(10);B、 int a[];C、int k=5,a[k];D、char a[3]={‘a’,’b’,’c’};【解析】详见教材P143~144,一维数组的定义、初始化类型符数组名 [常量表达式]类型符是指数组中数组元素的类型;数组名要符合标识符命名规那么;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。
《全国计算机等级考试二级教程C语言程序设计》

《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案第一章程序设计基本概念1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______.答案:.exe1。
2 C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是____ _.答案:。
c 。
obj 。
exe1.3 结构化程序由_____、_____、_____三种基本结构组成.答案:顺序、选择、循环第二章 C程序设计的初步知识一、选择题2。
1 以下选项中正确的整型常量是A)12. B)—20 C)1,000 D)4 5 6答案:B2.2 以下选项中正确的实型常量是A)0 B)3。
1415 C)0.329×10(2)(10的2次方) D)。
871答案:D2。
3 以下选项中不正确的实型常量是A)2。
607E-1 B)0。
8103e 2 C)—77。
77 D)456e-2答案:B2。
4 以下选项中不合法的用户标识符是A)abc。
c B)file C)Main D)PRINTF答案:A2.5 以下选项中不合法的用户标识符是A)_123 B)printf C)A$D)Dim答案:C2。
6 C语言中运算对象必需是整型的运算符是A)%B)/ C)!D)**答案:A2.7 可在C程序中用作用户标识符的一组标识符是A)void define WORDB)as_b3 _123 IfC)For -abc caseD)2c DO SIG答案:B2。
8 若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4)D)a=a+7=c+b答案:B2.9 以下叙述中正确的是A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值.B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式.C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b 的值由原值变为0.D)已有a=3,b=5。
计算机二级c语言考试试题及答案

计算机二级c语言考试试题及答案一、单项选择题(每题2分,共20分)1. 下列关于C语言的描述中,不正确的是()。
A. C语言是一种高级编程语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持多种数据类型答案:B2. C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A3. 下列选项中,不属于C语言运算符的是()。
A. %B. &&C. :D. ++答案:C4. 在C语言中,用于定义一个函数的关键字是()。
A. defineB. functionC. voidD. int答案:B5. 下列关于C语言数组的描述中,正确的是()。
A. 数组可以存储不同类型的数据B. 数组的索引从0开始C. 数组的大小在定义后可以改变D. 数组的元素必须是连续存储的答案:B6. 在C语言中,用于输入输出的库函数是()。
A. printfB. scanfC. coutD. cin答案:B7. 下列关于C语言指针的描述中,不正确的是()。
A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以进行算术运算D. 指针可以存储任何类型的数据答案:D8. 在C语言中,用于定义一个枚举类型的关键字是()。
A. enumB. structC. unionD. typedef答案:A9. 下列关于C语言函数的描述中,不正确的是()。
A. 函数可以有返回值B. 函数可以没有返回值C. 函数可以没有参数D. 函数的参数必须是变量答案:D10. 在C语言中,用于定义一个联合体的关键字是()。
A. unionB. structC. enumD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,表示逻辑“与”的运算符是______。
答案:&&2. C语言中,用于声明一个字符型变量的关键字是______。
计算机二级C语言测试题(含答案)

(第一章)1. 以下关于算法的描述不正确的是__________。
A. 任何一个问题,它的实现算法是唯一的B. 描述算法常用的表达工具有流程图、N-S图、PAD图、伪码等C. 算法的最终实现是计算机程序D. 正确性和清晰易懂性是一个好算法的基本条件2.下面是一个加法程序,指出存在的逻辑错误和语法错误。
/* 求整数a和b的和 */main( ){int a,b;a=8;b=2000;print("%d\n",a-b);}3.在每个C程序中都必须包含有这样一个函数,该函数的函数名为__________。
A.main B. MAIN C. name D. function4.以下叙述不正确的是__________。
A.C程序书写格式规定,一行内只能写一个语句B.main()函数后面有一对花括号,花括号内的部分称为函数体C.一个C程序必须有main()函数D.C规定函数内的每个语句以分号结束5.以下各标识符中,合法的用户标识符为_________。
A.A#C B.mystery C.main D.ab*6.已知求解某问题的算法如下:⑴输入a、b、c三个数。
⑵将a和b比较,较大者放在a中,小者放在b中。
⑶将a和c比较,较大者放在a中,小者放在c中。
⑷将b和c比较,较大者放在b中,小者放在c中。
⑸依次输出a、b、c。
请根据上述算法描述,把算法的功能表达出来。
【答案】把任意输入的三个数a、b、c按降序排列的顺序输出。
7.一个C语言程序可以包括多个函数,程序总是按照如下_________所描述的方式执行当前的程序。
A.从本程序的main()函数开始,到本程序文件的最后一个函数结束。
B.从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C.从main()函数开始,到main()函数结束。
D.从本程序文件的第一个函数开始,到本程序main()函数结束。
8.以下叙述正确的是_________。
2022年湖南省岳阳市全国计算机等级考试C语言程序设计真题二卷(含答案)

2022年湖南省岳阳市全国计算机等级考试C语言程序设计真题二卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.下列叙述中不正确的是( )。
A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.在C的函数中,最好使用全局变量C.外部变量可以在函数之间传递数据D.自动变量实质上是一个函数内部的局部变量2.线性链表中结点的结构为(data,next)。
已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列()操作。
A.s->next=p;p->next=s;B.s->next=p->next;p->next=s;C.s->next=p->next;p=s;D.p->next=s;s->next=p;3. C语言规定,程序中各函数之间( )A.既允许直接递归调用也允许间接递归调用B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用4.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。
A.编码设计B.测试阶段C.运行阶段D.物理设计5.有以下程序:#include <stdio.h>main(){int a=1,b=2,c=3,d=4, r=0;if(a!=1) r=1;if(b== 2) r=2;else if(c!=3) r=3;else if(d==4) r=4;printf(“%d\n”, r);}程序运行后的输出结果是()。
A.0B.4C.1D.26.以下程序是用来计算两个非负数之间的最大公约数:我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为()A.O(1)B.O(logn)C.O(n)D.O(n^2)7.若有定义“int b[8],*p=b;”,则p+6表示()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.素数1. [100,999]范围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数; 求有多少个这样的数?15 #include<math.h> int prime(int x) {int i,k; if(x<2)return(0); k=sqrt(x);for(i=2;i<=k;i++) if (x%i==0) break;if (i>k) return(1); else return(0); }main(){ int i,n=0,a,b,c; for(i=100;i<=999;i++) { a=i/100; b=i%100/10; c=i%10;if ((b+c)%10==a&&prime(i)) n++; }printf("Total is:%d",n); }2. [300,800]范围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10所得的余数是百位数字 ;⑵该数是素数;求满足上述条件的最大的三位十进制数。
761 3. 除1和它本身外,不能被其它整数整除的正整数称为素数(注:1不是素数,2是素数)。
若两素数之差为2 ,则称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数。
22 #include<math.h> int prime(int x) {int i,k; if(x<2)return(0); k=sqrt(x);for(i=2;i<=k;i++) if (x%i==0) break;if (i>k) return(1); else return(0); }main(){ int i,n=0;for(i=31;i<=599;i++)if (prime(i)&&prime(i+2)) n++; printf("Total is:%d\n",n); }4. 数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。
但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。
试求6744可以分解成多少种不同的素数对(注: A+B 与B+A 认为是相同素数对) 144 #include<math.h> int prime(int x) {int i,k; if(x<2)return(0); k=sqrt(x);for(i=2;i<=k;i++) if (x%i==0) break;if (i>k) return(1); else return(0); }main() { int i,n; n=0;for(i=31;i<=599;i++) if (prime(i)&&prime(i+2)) n++; printf("Total is:%d\n",n); }5. 两个素数之差为2,则称这两个素数为双胞胎数。
求出[200,1000]之间的最大一对双胞胎数的和。
6. 一个素数(设为p )依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p 的各位数字均不为零,则称该数p 为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
7. 德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。
但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。
试求1234可以分解成多少种不同的素数对(注: A+B 与B+A 认为是相同素数对) 8.求[100,900]之间相差为12的素数对(注:要求素数对的两个素数均在该范围内)的个数。
#include<math.h> int prime(int x) {int i,k; if(x<2)return(0); k=sqrt(x);for(i=2;i<=k;i++)if (x%i==0) break;if (i>k) return(1); else return(0);}main(){ int i,n=0;for(i=100;i<=900-12;i++)if (prime(i)&&prime(i+12)) n++; printf("Total is:%d\n",n); }9. 一个素数(设为p )依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数),且数p 的各位数字均不为零,则称该数p 为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,但尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的和。
21645#include<math.h> int prime(int x) { int i,k; k=sqrt(x);for(i=2;i<=k;i++) if (x%i==0) break; if (i>k) return(1); else return(0); }main(){ int i,s=0;int prime(int x); for(i=100;i<=999;i++) if(prime(i)&&prime(i%100)&&prime(i%10)) if((i%100/10!=0)&&(i%10!=0)&&(i%10!=1)) s=s+i;printf("Total is:%d\n",s); }10. 一个素数(设为p )依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数,2是素数),且数p 的各位数字均不为零,则称该数p 为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,但尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数从大到小数的第10个素数是多少? 797 11. 一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。
如13,试求所有两位绝对素数的和。
429 12. 在[200,900]范围 内同时满足以下两个条件的十进制数:⑴其个位数字与十位数字之和除以10所得的余数是百位数字; ⑵该数是素数;问有多少个这样的数?14 13. 一个素数,依次从个位开始去掉一位,二位.....,所得的各数仍然是素数,称为超级素数。
求[100,999]之内超级素数的个数。
14#include<math.h> int prime(int x) {int i,k; if(x<2)return(0); k=sqrt(x);for(i=2;i<=k;i++) if (x%i==0) break;if (i>k) return(1); else return(0); }main(){ int i,s=0;for(i=200;i<=999;i++) if(prime(i)&&prime(i/100)&&prime(i/10)) s++;printf("Total is: %d\n",si); }14. 若两个连续的自然数的乘积减1后是素数,则称此两个连续自然数为友数对,该素数称为友素数。
例如,由于 8*9-1=71, 因此,8与9是友数对,71是友素数。
求[100,200]之间的第10个友素数对所对应的友素数的值(按由小到大排列)。
17291 #include<math.h> int prime(int x) {int i,k; if(x<2)return(0); k=sqrt(x);for(i=2;i<=k;i++) if (x%i==0) break;if (i>k) return(1); else return(0); }main(){ int i,s=0;for(i=100;i<=200;i++) if (prime(i*(i+1)-1)) { s++;if (s==10) break;}printf("Total is:%d\n",i*(i+1)-1); } 15. 求[2,400]中相差为10的相邻素数对的对数。
516. 若两个连续的自然数的乘积减1后是素数,则称此两个连续自然数为友数对,该素数称为友素数。
例如,由于 8*9-1=71, 因此,8与9是友数对,71是友素数。
求[50,150]之间的友数对的数目。
38 17. 若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数,例:2*3-1=5,因此2与3是友数对,5是友素数,求[40,119]之间友素数对的数目。
18. 梅森尼数是指能使2^n-1为素数的数n ,求[1,21]范围内有多少个梅森尼数? 7#include<math.h> int prime(long x) { long k; long i; if(i<2)return(0); k=sqrt(x);for(i=2;i<=k;i++) if (x%i==0) break; if (i>k) return(1); else return(0); }main(){ int i,s=0;for(i=1;i<=21;i++) if(prime((long)(pow(2,i))-1)&&((long )(pow(2,i)-1)!=1)&&((long)(pow(2,i )-1)!=0)) {s++;printf("\nTotalis:%d,%ld\n",s,(long)(pow(2,i))-1);} } 2. 取数字19. [300,800]范围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10所得的余数是百位数字 ;⑵该数是素数;求满足上述条件的最大的三位十进制数。