二级C语言-305 (1)
二级C语言-306 (1)
二级C语言-306(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充main()函数,该函数的功能是:从键盘输入学生的成绩(用Enter键作为分隔符),并统计各分数段学生的人数。
具体要求为:A类为90~100分,B类为80~89分,C类为70~79分,D类为60~69分,59分以下的为E类。
当成绩为0时结束成绩的输入,并且最后输入的0不进行统计。
例如,若输入:89,99,45,90,56,78,88,74,66,55,0,则显示结果为:A:2 B:2 C:2 D:1 E:3。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#define M 100void main(){float score[M];int bb[5];int grade, i=-1, n=0;char ch="A";system("CLS");printf("Input a score(0~100); /n");do{i++;n++;printf("score[%d]=", i);scanf( 1);}while(score[i]!=0);for(i=0; i<5; i++)2;for(i=0; i<n-1; i++){grade= 3;switch(grade){ case 10:case 9: bb[0]++; break;case 8: bb[1]++; break;case 7: bb[2]++; break;case 6: bb[3]++; break;default: bb[4]++;}}for(i=0; i<5; i++)printf("/n%c: %d", ch+i, bb[i]);}(分数:30.00)解析:"%f", &score[i] bb[i]=0 score[i]/10[解析] 由整个程序可知,数组变量score中存放的是学生成绩,首先要格式化输入的各个学生的成绩,因此,第一处填“"%f", &score[i]”;数组bb中存放的是各个成绩段的学生人数,初始化为0,因此,第二处填“bb[i]=0”;由各case语句可知,用来判断成绩段的分数的十位数字,因此,第三处填“score[i]/10”。
2016年03月全国计算机等级考试二级《C语言》真题及详解
2016年03月全国计算机等级考试二级《C语言》真题(总分100, 考试时间90分钟)一、选择题1. 有以下定义:struct data{ int i;char c;double d;}x;以下叙述中错误的是______。
A x的内存地址与x. i的内存地址相同B struct data是一个类型名C 初始化时,可以对x的所有成员同时赋初值D 成员i、c和d占用的是同一个存储空间答案:D[解析] 变量i、c、d是结构体变量x中三个不同的成员,占用不同的存储空间。
2. 以下函数的功能是:计算a的n次方作为函数值返回。
double fun(double a,int n){ int i;double s=1.0;for(i=1;i<=n;i++)s=______;return s;}为实现上述功能,函数中下划线处应填入的是______。
A s*iB s*aC s+i*iD s+a*a答案:B[解析] s为a的(i-1)次方的结果,所以令s=s*a即可得到a的i次方。
3. 有以下程序:#include<stdio.h>#include<string.h>main( ){ char str[ ]={"Hello,Beijing"};printf("%d,%d\n",strlen(str),sizeof(str));}程序的运行结果是______。
A 13,13B 13,14C 13,15D 14,15答案:B[解析] strlen返回字符串的长度,不包含字符串末尾的结束字符"\0",结果为13;sizeof返回字符串所占存储空间的大小,由于字符串最后要加上一个"\0",所以结果为13+1=14。
4. 若有说明:typedef struct{int a;char c;}w;,则以下叙述正确的是______。
A 编译后系统为w分配5个字节B 编译后系统为w分配6个字节答案:D[解析] w是一个自定义类型,不是变量,故编译后系统不为w分配存储空间。
全国计算机二级《C语言》考试题库与答案
全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。
什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。
全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。
A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。
A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。
A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。
A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是( )。
A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。
以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。
全国二级c语言教程
C语言的应用领域
操作系统
C语言是开发操作系统的首选语言,如 UNIX、Linux等都是用C语言编写的。
嵌入式系统
C语言在嵌入式系统开发中占据重要地位, 如微控制器编程、驱动程序开发等。
游戏开发
网络编程
许多经典的游戏都是用C语言编写的,如《 超级马里奥》、《俄罗斯方块》等。
C语言在网络编程方面也有广泛应用,如 TCP/IP协议栈的实现、网络服务器的开发 等。
全国二级C语言教程
contents
目录
• C语言概述 • C语言基础 • 数组与指针 • 结构体与共用体 • 文件操作 • C语言高级特性
01 C语言概述
C语言的历史与发展
起源
C语言最初是由丹尼斯·里奇(Dennis Ritchie)在1972年为开发UNIX操作 系统而设计的一种高级编程语言。
常用于底层编程、硬件操作、加密解密等领域。
类型转换与类型别名
类型转换
将一种数据类型转换为另一种数据类型,包括隐式转 换和显式转换两种方式。
类型别名
使用`typedef`关键字为数据类型定义别名,方便代码 阅读和维护。
类型转换的注意事项
在类型转换时需要注意数据溢出、精度丢失等问题。
可变参数列表与函数指针
结构体数组与指针
结构体数组
结构体数组是指元素类型为结构体的 数组。定义结构体数组后,可以像使 用普通数组一样使用结构体数组,包 括赋值、取值、遍历等。
结构体指针
指向结构体的指针称为结构体指针。通过 结构体指针可以访问结构体的成员,需要 使用`->`运算符。结构体指针在函数参数 传递、动态内存分配等方面有广泛应用。
函数定义
函数是一段完成特定功能的代码块,通 过函数名进行调用。
计算机二级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语言试题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0123C. 0x123.456D. 0123456答案:A解析:在C语言中,十六进制常量以0x或0X开头,后跟十六进制数字。
选项A表示十六进制数,是合法的整型常量。
选项B表示八进制数,选项C表示浮点数,选项D是无效的表示。
2. 下列哪个选项是C语言中的关键字?A. switchB. caseC. defaultD. all of the above答案:D解析:在C语言中,switch、case和default都是关键字。
switch用于条件分支,case用于指定分支条件,default用于指定默认分支。
3. 在C语言中,以下哪个选项是合法的字符常量?A. 'A'B. "A"C. '\t'D. 'AB'答案:C解析:在C语言中,字符常量用单引号括起来,可以是单个字符或转义字符。
选项A是合法的字符常量,但选项B是字符串常量。
选项C 是合法的转义字符,表示水平制表符。
选项D是两个字符,不是合法的字符常量。
4. 在C语言中,以下哪个选项是合法的数组声明?A. int a[];B. int b[10];C. int c[10] = {0};D. all of the above答案:D解析:在C语言中,A选项声明了一个未指定大小的整型数组,B选项声明了一个大小为10的整型数组,C选项声明了一个大小为10的整型数组并初始化所有元素为0。
所有选项都是合法的数组声明。
5. 在C语言中,以下哪个选项是合法的函数声明?A. int func(int x);B. int func(int);C. int func();D. int func(int, int);答案:D解析:在C语言中,函数声明需要指定返回类型、函数名和参数列表。
全国计算机等级考试二级C语言【附详解】教案资料-
若k是int类型变量,且有以下for语句 For
(k=-1;k<0;k++) printf(****\n”);下
面关于语句执行情况的叙述中正确的是
A、循环体执行一次
B、循环体执行两次
C、循环体一次也不执行
下面不属于需求分析阶段任务的是 A、确定软件系统的功能需求 B、确定软件系统的系统的系能需求 B、制定软件集成测试计划 D、需求规格说明书审评
需求分析是对待开发软件提出的需求进行分析并给出详细的定义。 主要工作是编写软件需求规格说明书及用户手册。 需求分析的任务是导出目标系统的逻辑模型,解决“做什么”的问题。 制定软件集成测试计划是软件设计阶段需要完成的任务
有以下程序 #include <sthio.h> Main() { Int A=0,B=0,C=0;
ቤተ መጻሕፍቲ ባይዱ
1、首先执行a-=a-5,即a=a-(a5) 使得a的值为5 2、执行c=(a-=a-5) 即将a的值5赋给变量c
C=(A-=A-5);(A=B,B+=4); 使得c的值也为5。
Printf(“%d, %d, %d\n”,A,3B、,C执)行下句逗号表达式中的
那么度为1的节点数为
A、4
B、6 C、10
D、16
• 二叉树的性质3,度为0的结点数(即叶子结点数)=度为2的结点数 +1。
• 题中叶子结点数为5个,利用性质3可计算出度为2的结点数为4个。 • 二叉树只有三种结点:度为0的、度为1的、度为2的,总数为25个,
所以度为1的结点数即为25-5-4=16个,所以为D。
2023年计算机等级二级考试C语言试题及答案
一、选择题在下列各题旳A)、B)、C)、D)四个选项中,只有一种选项是对旳旳,请将对旳旳选项涂写在答题卡对应位置上,答在试卷上不得分。
(1)程序流程图中带有箭头旳线段体现旳是CA)图元关系B)数据流C)控制流D)调用关系(2)下面不属于软件设计原则旳是 CA)抽象B)模块化C)自底向上D)信息隐蔽(3)下列选项中,不属于模块间耦合旳是 CA)数据耦合B)标识耦合C)异构耦合D)公共耦合(4)下列论述中,不属于软件需求规格阐明书旳作用旳是DA)便于顾客、开发人员进行理解和交流B)反应出顾客问题旳构造,可以作为软件开发工作旳基础和根据C)作为确认测试和验收旳根据D)便于开发人员进行需求分析(5)算法旳时间复杂度是指CA)执行算法程序所需要旳时间B)算法程序旳长度C)算法执行过程中所需要旳基本运算次数D)算法程序中旳指令条数(6)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用旳算法是BA)堆排序B)直接插入排序C)迅速排序D)B)和C) (7)栈底至栈顶依次寄存元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列也许是BA)ABCED B)DCBEA C)DBCEA D)CDABE(8)数据库设计包括两个方面旳设计内容,它们是AA)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)构造特性设计和行为特性设计(9)关系表中旳每一横行称为一种AA)元组B)字段C)属性D)码(10)设有体现学生选课旳三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC旳关键字(键或码)为 CA)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)如下不对旳旳论述是DA)在C程序中,逗号运算符旳优先级最低B)在C程序中,APH和aph是两个不同样旳变量C)若a和b类型相似,在计算了赋值体现式a=b后b中旳值将放入a中,而b中旳值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(12)请选出可用作C语言顾客标识符旳是BA)void,define,WORD B)a3_b3,_123,IF C)FOR,--abc,CaseD)2a,Do,Sizeof(13)如下选项中,不能作为合法常量旳是BA)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0 (14)在C语言中,运算对象必须是整型数旳运算符是AA)% B)\ C)%和\D)**(15)若变量均已对旳定义并赋值,如下合法旳C语言赋值语句是AA)x=y==5; B)x=n%2.5; C)x+n=i; D)x=5=4+1;(16)有如下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a旳ASCII码值为97,则执行上述程序段后输出成果是DA)因变量类型与格式描述符旳类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)已知字母A旳ASCII代码值为65,若变量kk为char型,如下不能对旳判断出kk中旳值为大写字母旳体现式是BA)kk>=′A′&&kk<=′Z′ B)!(kk>=′A′||kk<=′Z′) C)(kk+32)>=′a′&&(kk+32)<=′Z′ D)isa lpha(kk)&&(kk<91)(18)当变量c旳值不为2、4、6时,值也为"真"旳体现式是BA)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若有条件体现式(exp)?a++:b--,则如下体现式中能完全等价于体现式(exp)旳是BA)(exp==0) B)(exp!=0) C)(exp==1) D)(exp!=1)(20)如下不对旳旳定义语句是BA)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9}; C)char c1[]={′1′,′2′,′3′,′4′,′5′}; D)char c2[]={′\x10′, ′xa′, ′\x8′};(21)下列程序执行后旳输出成果是Bmain(){ int a[3][3], *p,i;p=&a[0][0];for(i=1; i<9; i++)p[i]=i+1;printf("%d\n",a[1][2];)A)3 B)6 C)9 D)随机数(22)设有如下程序段Bint x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中旳控制体现式是非法旳D)程序段执行无限次(23)下面程序段旳运行成果是Cchar *s="abcde";s+=2;printf("%d",s);A)cde B)字符′c′ C)字符′c′旳地址D)无确定旳输出成果(24)阅读下列程序,则执行后旳成果为A#include "stdio.h"main(){ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}A)3e,6 B)62,5 C)56,5 D)3E,6(25)下面判断对旳旳是CA)char *a="china";等价于char *a;*a="china"; B)char str[5]={"china"};等价于char str[]={"china"};C)char *s="china";等价于char *s;s="china"; D)char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";(26)若有定义:int a[2][3];,如下选项中对a数组元素对旳引用旳是DA)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1](27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误旳输入语句是DA)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]); (28)有如下程序(29)#include <stdio.h>#define N 5#define M N+1#define f(x) (x*M)main(){ int i1,i2;i1=f(2);i2=f(1+1);printf("%d %d\n",i1,i2);}程序旳运行成果是BA)12 12 B)11 7 C)11 11 D)12 7(29)若有如下阐明和定义union dt{ int a; char b; double c;}data;如下论述中错误旳是DA)data旳每个组员起始地址都相似B)变量data所占内存字节数与组员c所占字节数相等C)程序段:data.a=5;printf("%f\n",data.c);输出成果为5. D)data可以作为函数旳实参(30)有如下程序#include<stdio.h>main(){FILE *fp;int k,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后旳输出成果是DA)1 2 B)1 4 C)123 4 D)123 456 (31)若已定义int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;其中则对a数组元素不对旳旳引用是DA)a[p-a] B)*(&a[i]) C)p[i] D)a[10](32)有如下程序#include <stdio.h>void fun(int *s,int n1,int n2){ int i,j,t;i=n1; j=n2;while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3); fun(a,4,9); fun(a,0,9);for(k=0;k<l0;k++)printf("%d",a[k]); printf("\n");}程序旳运行成果是CA) B) C) D)(33)阅读下列程序,当运行函数时,输入asd af aa z67,则输出为A#include <stdio.h>#include <ctype.h>#include <string.h>int fun (char *str){ int i,j=0;for(i=0;str[i]!=′ \0′;i++)if(str[i]!=′ ′)str[j++]=str[i];str[j]= ′\0′;}main(){char str[81];int n;printf("Input a string : ");gets(str);puts(str);fun(str);printf("%s\n",str);}A)asdafaaz67 B)asd af aa z67 C)asd D)z67(34)有如下程序int fun(int n){if(n==1)return 1;elsereturn(n+fun(n-1));}main(){int x;scanf("%d",&x); x=fun(x);printf("%d\n",x)}执行程序时,给变量x输入10,程序旳输出成果是AA)55 B)54 C)65 D)45(35)下面程序段中,输出*旳个数是 Cchar *s="\ta\018bc";for(;*s!='\0';s++)printf("*");A)9 B)5 C)6 D)7(36)C语言构造体类型变量在程序运行期间BA)TC环境在内存中仅仅开辟一种寄存构造体变量地址旳单元B)所有旳组员一直驻留在内存中C)只有最开始旳组员驻留在内存中D)部提组员驻留在内存中(37)已知函数旳调用形式为fread(buf,size,count,fp),参数buf旳含义是CA)一种整型变量,代表要读入旳数据项总数B)一种文献指针,指向要读旳文献C)一种指针,指向要读入数据旳寄存地址D)一种存储区,寄存要读旳数据项(38)设有如下语句char x=3,y=6,z;则z旳二进制值是BA) B) C) D)(39)在C语言中,只有在使用时才占用内存单元旳变量,其存储类型是AA)auto和register B)extern和register C)auto和static D)static和register (40)设有定义语句int (*f)(int);,则如下论述对旳旳是BA)f是基类型为int旳指针变量B)f是指向函数旳指针变量,该函数具有一种int类型旳形参C)f是指向int类型一维数组旳指针变量D)f是函数名,该函数旳返回值是基类型为int类型旳地址二、填空题请将每一种空旳对旳答案写在答题卡序号旳横线上,答在试卷上不给分。
国家二级C语言机试(C语言程序设计)模拟试卷1(题后含答案及解析)
国家二级C语言机试(C语言程序设计)模拟试卷1(题后含答案及解析)题型有:1. 选择题选择题1.若x为int变量,则以下语句的输出结果是( )。
x=1234;printf(“|\%-06d|n”,x);A.输出格式描述符不合法B.输出为|001234|C.输出为|1234|D.输出为|-01234|正确答案:C解析:本题主要考查C语言prinltf函数中格式控制字符串的使用,%表示格式说明的起始符号,“-”表示输出是否左对齐,“0”表示输出是空位是否填0。
在本题中格式字符串的“f”将原样输出。
若用格式描述’%6d’输出x值,则输出占6格,右对齐,左边用空格填满。
若用格式描述%06d,将输出x值,输出同上,只是左边用0填满。
若用格式描述%-06d,输出为左对齐即左边没有空位置,右边有空位置。
知识模块:C语言程序设计2.已知定义k为double类型变量,k=260.72631:p血t”%-6.2e \n”,k);则以上语句的输出结果是( )。
A.输出格式描述的域宽不够,不能输出B.输出为26.07e+01C.输出为2.6e+02D.输出为-2.64e2正确答案:C解析:在C语言中,使用e格式描述符输出浮点数时(浮点数将以指数形式输出),用户可指定输出数据的宽度和小数部分的位数,其一般形式为%m.he 或%-m.ne,其中m、n和字符“-”的含义均与上题所述相同。
需要指出的是,在不同的计算机系统中,虽然对指数部分应占宽度的规定不同,但是数值部分均按标准化指数形式输出(即小数点前必须有而且仅有一位非零数字)。
本题按标准化指数形式输出k值的整数部分,截去小数点并四舍五入,输出项k的实际宽度为9列,而格式说明中所给定的域宽为6,因此,将自动突破规定宽度,而按实际宽度输出,输出结果为2.6e+02。
知识模块:C语言程序设计3.若m是int型变量,n是noat型变量,所用的scanf调用语句格式为:scanf(“m=%d,n=%f,”&m,&n);则为了将数据10和66.6分别赋给m 和n,正确的输入应当是( )。
二级C语言机试305_真题-无答案
二级C语言机试305(总分100,考试时间90分钟)1、填空题1. 请补充函数fun(),该函数的功能是:把从键盘输入的3个整数按从小到大输出。
例如:输入“33 78 25”,结果输出“25 33 78”。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的横线上填入所编写的若干表达式或语句。
试题程序:# include<stdio. h># include<conio. h>main() { int x,y, z,t; clrscr (); printf ("Input x, y, z\n"); scanf ("%d%d%d", &x, &y, &z); if( 【1】) { t=x; x=y; y=t; }/*变换x, y的值*/ if( 【2】) t=z; z=x; x=t; }/*交换x, z 的值*/ if( 【3】) { t=y; y=z; z=t; }/*变换z, y 的值*/ printf("******the result*******\n"); printf("from small to big: %d %d %d\n", x, y, z); }2、改错题1. 数列中,第一项为3,后一项都比前一项的值增5。
下列给定程序中,函数fun()的功能是:计算前n(4≤n≤50)项的累计和。
在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。
如,当n的值为20时,该数列为3,8,13,18,23,28,…,93,98。
符合此条件的累加值应为42,126,366,570,1010。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:# include <stdio. h># define N 20 int fun(iht n, int *a) /*************found*************/ { int i, j, k, sum; sum=0; for(k=3, i=0;i<n; i++, k+=5) { sum=sum+ k; /************found***************/ if (sum%4=2) a [j++] =sum; } /*************found**************/ return j; } main ( ) { int a[N],d, n, i; printf("\nEnter n(4<=n<=50): "); scanf("%d", &n); d=fun(n, a); printf("\n\n The result :\n "); for(i=0;i<d; i++) printf("%6d ",a[i]); printf("\n\n "); }3、编程题1. 请编一个函数float fun (double h),函数的功能是对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。
全国计算机二级考试《C语言》真题与答案
全国计算机二级考试《C语言》真题与答案全国计算机二级考试《C语言》真题与答案通过真题的练习,我们可以了解计算机等级考试的题型,有针对性的复习。
以下是店铺搜索整理的一份全国计算机二级考试《C语言》真题与答案,供参考练习,预祝考生们考出自己理想的成绩!想了解更多相关信息请持续关注我们店铺!全国计算机二级考试《C语言》真题与答案篇11.下列叙述中正确的是。
A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对正确答案:A2.下列与队列结构有关联的是A.函数的递归调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度正确答案:D3.一个栈的初始状态为空。
现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1D.1,2,3,C,B,A正确答案:C4.下面属于白盒测试方法的是______。
A.等价类划分法B.逻辑覆盖C.边界值分析法D.错误推测法正确答案:B5.下面对对象概念描述正确的是()。
A.对象间的通信靠消息传递B.对象是名字和方法的封装体C.任何对象必须有继承性D.对象的多态性是指一个对象有多个操作正确答案:A6.软件设计中模块划分应遵循的准则是()。
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合正确答案:B7.下面描述中不属于数据库系统特点的是()。
A.数据共享B.数据完整性C.数据冗余度高D.数据独立性高正确答案:C8.数据库设计过程不包括()。
A.概念设计B.逻辑设计C.物理设计D.算法设计正确答案:D9.以下叙述正确的是()。
A.C语言函数可以嵌套调用,例如:fun(fun(x))B.C语言程序是由过程和函数组成的C.c语言函数不可以单独编译D.c语言中除了main函数,其他函数不可作为单独文件形式存在正确答案:A10.以下选项中合法的标识符是A)1_1B)1-1C)_11D)1_ _正确答案:C11.表达式3.6-5/2+1.2+5%2的值是()A.4.3B.4.8C.3.3D.3.8正确答案:D12.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
二级c语言
二级c语言二级c语言. 大数的运算1. 大数的运算原理RSA算法依赖于大数的运算,目前主流RSA算法都建立在512位到1024位的大数运算之上,所以我们首先需要掌握大数(比如1024位)的运算原理。
大多数的编译器只能支持到32位(或64位)的整数运算,即我们在运算中所使用的整数必须小于等于32位,即0xFFFFFFFF,这远远达不到RSA的需要,于是需要专门建立大数运算库,来解决这一问题。
最简单的办法是将大数当作字符串进行处理,也就是将大数用10进制字符数组进行表示,然后模拟人们手工进行“竖式计算”的过程编写其加减乘除函数。
但是这样做效率很低。
当然其优点是算法符合人们的日常习惯,易于理解。
另一种思路是将大数当作一个二进制流进行处理,使用各种移位和逻辑操作来进行加减乘除运算,但是这样做代码设计非常复杂,可读性很低,难以理解也难以调试。
这里我们采用了一种介于两者之间的思路:将大数看作一个N进制数组,对于目前的32位系统而言,N可以取2的'32次方,即0x100000000,假如将一个1024位的大数转化成0x10000000进制,它就变成了32位,而每一位的取值范围是0- 0xFFFFFFFF。
我们正好可以用一个无符号长整数来表示这一数值。
所以1024位的大数就是一个有32个元素的unsigned long数组。
而且0x100000000进制的数组排列与2进制流对于计算机来说,实际上是一回事,但是我们完全可以针对unsigned long数组进行“竖式计算”,而循环规模被降低到了32次之内,并且算法很容易理解。
但考虑到乘法和除法,都要进行扩展才能进行快速的计算(如果把除法变减法而不扩展,速度将慢的无法忍受)。
所以我们将N取2的16次方的,即0xFFFF。
每一位用unsigned short来表示,当进行乘除运算时,将short扩展成long,这是编译器所支持的,所以运算起来,比较快。
2. 大数的各种运算这些运算都是常见的,同时也是常用的。
C语言二级
C语言二级 (2)基本要求 (2)考试内容 (2)一、C语言程序的结构 (2)二、数据类型及其运算 (2)三、基本语句 (2)四、选择结构程序设计 (2)五、循环结构程序设计 (3)六、数组的定义和引用 (3)八、编译预处理 (3)九、指针 (3)十、结构体(即“结构”)与共同体(即:“联合”) (3)十一、位运算 (4)十二、文件操作 (4)考试方式 (4)考试内容 (4)一、 C 语言概述 (4)二、数据类型、表达式和基本运算 (5)三、 C 的基本语句 (5)四、数组、指针与引用 (5)五、把握函数的有关使用 (5)六、熟练把握类与对象的相关知识 (6)七、把握类的继续与派生知识 (6)八、了解多态性概念 (6)九、模板 (6)十、输入输出流 (6)C语言二级基本要求1.熟悉Visual C++ 6.0集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格。
3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4.在Visual C++ 6.0集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。
考试内容一、C语言程序的结构1.程序的构成,main函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3.源程序的书写格式。
4.C语言的风格。
二、数据类型及其运算1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句1.表达式语句,空语句,复合语句。
.输入输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计1.用if语句实现选择结构。
2.用switch语句实现多分支选择结构。
3.选择结构的嵌套。
五、循环结构程序设计1.for循环结构。
二级C语言-304_真题无答案
二级C语言-304(总分100, 做题时间90分钟)一、程序填空题1.请补充main()函数,该函数的功能是求方程kx 2 +px+j=0的根(方程的系数k,p,j从键盘输入)。
例如,当k=1,p=-2,j=1时,方程的两个根分别是:x1=1.00,x2=1.00。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<math.h>void main(){float k, p, j, disc, x1, x2, m, q;scanf("%f, %f, %f", &k, &p, &j);disc=p*p-4*k*j;system("CLS");printf("****the result****\n");if(disc>=0){x1=______;x2=(-p-sqrt(disc))/(2*k);printf("x1=%6.2f, x2=%6.2f\n", x1, x2);}else{m=______;q=______;printf("x1=%6.2f+%6.2f i\n", m, q);printf("x2=%6.2f-%6.2f i\n", m, q);}}SSS_FILL二、程序改错题1.给定程序中,函数proc()的功能是:使数组中的元素的值增加10倍。
修改其中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:#include<sldio.h>#include<conio.h>int m[10];void proc(void){int j;printf("In subfunc after calling\n");for(j=0; j<10; j++){//****found****printf("%3d", m[j]*10);}}void main(){int i;printf("In main before calling\n");for(i=0; i<10; i++){m[i]=i;printf("%3d", m[i]);}proc();printf("\nIn main after calling\n");for(i=0; i<10; i++)printf("%3d", m[i]);getch();}SSS_TEXT_QUSTI三、程序设计题1.请编写函数proc(),对长度为9个字符的字符串,除首、尾字符外,将其余7个字符按ASCII码值降序排列。
12月计算机二级C语言习题及答案
12月计算机二级C语言习题及答案2016年12月计算机二级C语言习题及答案练习是帮助我们巩固知识的最好方法,以下是店铺为大家整理的2016年12月计算机二级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,结果的数据类型也应为实型数据,因此选项 B 11.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语言-355 (1)
二级C语言-355(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充函数proc(char*str),该函数的功能是把字符串中的内容逆置。
例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容变为gfedcba。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdlib.h>#include<string.h>#include<conio.h>#include<stdio.h>#define M 81void proc(char*str){int i=0,t,n=strlen(str);for(; 1;i++){t=*(str+i);2;3;}}void main(){char str[M];system("CLS");printf("Enter a string:");gets(str);printf("The original string is:");puts(str);proc(str);printf("/n");printf("The string after modified:");puts(str);(分数:30.00)解析:i<n/2 *(str+i)=*(str+n-1-i) *(str+n-1-i)=t[解析] 要将字符串中的内容逆置,可以通过将字符串中的第一个字符和最后一个字符互换,第二个和倒数第二个互换,直到字符串str最中间的字符为止,因此,第一处填“i<n/2”。
for循环体中的语句功能为将第i个字符与第(n-1-i)个字符互换,因此,第二处填“*(str+i)=*(str+n-1-i)”;第三处填“*(str+n-1-i)=t”。
2021年3月全国计算机等级考试二级C语言历年真题和答案
2021年3月全国计算机等级考试二级C语言历年真题和答案2021年3月全国计算机等级考试《二级C语言》题库【历年真题+章节题库+模拟试题】目录•第一部分历年真题•全国计算机等级考试《二级C语言程序设计》真题及详解(一)•全国计算机等级考试《二级C语言程序设计》真题及详解(二)•全国计算机等级考试《二级C语言程序设计》真题及详解(三)•全国计算机等级考试《二级C语言程序设计》真题及详解(四)•全国计算机等级考试《二级C语言程序设计》真题及详解(五)•全国计算机等级考试《二级C语言程序设计》真题及详解(六)•第二部分章节题库•公共基础知识•第1章数据结构与算法•第2章程序设计基础•第3章软件工程基础•第4章数据库设计基础•C语言程序设计•选择题•第1章程序设计基本概念•第2章C程序设计的初步知识•第3章顺序结构•第4章选择结构•第5章循环结构•第6章字符型数据•第7章函数•第8章地址和指针•第9章数组•第10章字符串•第11章对函数的进一步讨论•第12章C语言中用户标识符的作用域和存储类•第13章编译预处理和动态存储分配•第14章结构体、共用体和用户定义类型•第15章位运算•第16章文件•上机操作题•一、程序填空题•二、程序修改题•三、程序设计题•第三部分模拟试题•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(一)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(二)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(三)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(四)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(五)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(六)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(七)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(八)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(九)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(十)•常见问题电子书常见问题1.电子书产品(电子书、题库、视频、全套等)能在几种设备上使用?如何使用?答:支持电脑(WIN10、WIN8、WIN7)、手机、平板等多端同步使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级C语言-305
(总分:100.00,做题时间:90分钟)
一、程序填空题(总题数:1,分数:30.00)
1.请补充函数proc(),该函数的功能是:把一个字符串中的字符(字母)按从小到大排序,并把这个全部由字母组成的字符串保存在原串中,函数返回这个字符串的长度。
例如,若输入“abc12def”,则新字符串
为abcdef,字符串长度为6。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#define M 20
int proc(char*str)
{
int i=0, j=0, k=0, m=0;
char t;
char*p=str;
while(*p)
{
if((*p>一"A"&&*p<="Z")||("p>="a"&&*p<="z"))
1;
p++;
}
*(str+i)="/0";
2;
while(*(p+j))
{
k=j;
3;
while(*(p+k))
{
if(*(p+k)<*(str+m))
{
t=*(str+m);
*(str+m)=*(p+k);
*(p+k)=t;
}
k++;
}
j++;
}
return i;
}
void maill()
{
char str[81];
int n;
system("CLS");
printf("Input the original string");
gets(str);
printf("***The Original string***/n");
puts(str);
printf("***The new string***/n");
n=proc(str);
puts(str);
printf("***The length of Flew string is: %d***/n", n);
}
(分数:30.00)
解析:*(str+i++)=*p p=str m=j[解析] 题目中要求将一个字符串的字母字符按从小到大排序。
首先要将字符串中的所有字母字符选择出来放在原来的字符串中。
因此,第一处填“*(str+i++)=*p”。
由后面的代码可知,变量p指向新的字符串str,因此其初始值为字符串str的首地址。
因此,第二处填“p=str”。
然后将得到的新的字符串排序,因此,第三处填“m=j”。
二、程序改错题(总题数:1,分数:40.00)
2.下列给定程序中,函数proc()的功能是:给一维数组arr输入任意4个整数,并按如下的规律输出。
例如,若输入2 3 4 5,则程序运行后输m以下矩阵:
5 2 3 4
4 5 2 3
3 4 5 2
2 3 4 5
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#define N 4
//****found****
void proc(int arr)
{
int i, j, k, m;
print(("Enter 4 number:");
for(i=0; i<N; i++) scanf("%d", &arr[i]);
printf("/n/nThe result:/n/n");
for(i=N; i>0; i--)
{
k=arr[N-1];
for(j=N-1; j>0; j--)
//****found****
arr[j]=arr[j+1];
arr[0]=k;
for(m=0; m<N; m++)printf("%d", arr[m]);
printf("/n");
}
}
void main()
{
int a[N];
proc(a); printf("/n/n");
}
(分数:40.00)
__________________________________________________________________________________________ 正确答案:()
解析:(1)错误:void proc(int arr)
正确:void proc(int *arr)
(2)错误:arr[j]=arr[j+1];
正确:arr[j]=arr[j-1]; [解析] 由主函数中的函数调用可知,函数proc的形参为整型的指针变量。
因此,“void proc(int arr)”应改为“voidproc(int*arr)”。
从“a[j]=a[j+1];”可知,当“j=M-1”时
“a[j+1];”越界了,而程序的思路是把前一个数放到后一个中,再把最后面的数放到第一个中,因此把arr[j+1]改为arr[j-1]。
三、程序设计题(总题数:1,分数:30.00)
3.请编写一个函数void proc(int m, int k, int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入所指的数组中。
例如,若输入20 6,则应输出23 29 31 37 41 43。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void proc(int m, int k, int xx[])
{
}
void main()
{
int m, n, arr[1000];
system("CLS");
printf("/nPlease enter two integers:");
scanf("%d%d", &m, &n);
proc(m, n, arr);
for(m=0; m<n; m++)
printf("%d", arr[m]);
printf("/n");
}
(分数:30.00)
__________________________________________________________________________________________ 正确答案:()
解析:void proc(int m, int k, int xx[])
{
int i, j, n;
for(i=m+1, n=0; n<k; i++) //大于整数m且紧靠m的k个数
{ for(j=2; j<i; j++) //判断是否为素数
if(i%i==0)break;
if(j>=i) //如果是则把其放到xx数组中
xx[n++]=i;
}
} [解析] 要将大于整数m且紧靠m的k个素数存入所指的数组中,首先应该判断大于整数m且紧靠m的整数是否为素数。
将紧靠m且为素数的k个整数放入数组xx中。