历年计算机等级考试二级C语言上机真题及答案
- 格式:pdf
- 大小:1.71 MB
- 文档页数:17
计算机二级c 语言上机题库及答案.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。
试题程序: #include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("10!=%ld\n", fun(10));}第1 处填空:n>1 或1<n第2 处填空:n-1第3 处填空:1 或11 或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1 处:Isprime(int n);应改为Isprime(int n)第2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。
计算机二级c考试真题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的字符常量?A. 'a'B. "a"C. 3D. 'ab'答案:A解析:在C语言中,字符常量需要用单引号括起来,因此'a'是合法的字符常量。
选项B是字符串常量,选项C是整数常量,选项D是两个字符的序列,不是单个字符常量。
2. 若有以下定义:```cint a = 3, b = 4;```则表达式`a + b`的值是:A. 7B. 3C. 4D. 0答案:A解析:根据题目中给出的变量定义,a的值为3,b的值为4。
因此,表达式`a + b`的值是3 + 4,即7。
3. 在C语言中,以下哪个选项是正确的整型变量声明?A. int a;B. float b;C. double c;D. All of the above答案:D解析:在C语言中,int、float和double都是合法的整型和浮点型变量声明。
因此,选项A、B和C都是正确的整型变量声明。
4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D解析:在C语言中,&&代表逻辑与,||代表逻辑或,!代表逻辑非,它们都是C语言中的逻辑运算符。
5. 若有以下定义:```cint x = 10;```则表达式`x % 3`的值是:A. 1B. 2C. 3D. 0答案:A解析:表达式`x % 3`表示x除以3的余数。
10除以3的商是3,余数是1,因此`x % 3`的值是1。
6. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[10] = "Hello";B. char str[] = "Hello";C. Both A and BD. None of the above答案:C解析:在C语言中,选项A和B都是正确的字符串声明方式。
第1套一、填空给定函数的功能是调用fun 函数建立班级通讯录。
通讯录记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。
答案:1. STYPE 2. FILE3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s 中的字符按逆序连接到t串后面。
答案:1. for(i = 0 ; i < sl ;i++) 2. t[2*sl] =` 0`; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(a/10)*1000+(b/10)*100 +(a%10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText 和WriteText实现。
答案:*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
答案:long *t sl =sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(b/10)*1000+(a%10)*100 +(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。
答案:(1)fp (2)fclose(fp)(3)fname二、修改将n个无序整数从小到大排序。
答案:for(i=j+1;i<n;i++)p=i;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。
2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。
二、填空题1. 在C语言中,`________`关键字用于声明一个函数。
答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。
2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。
```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。
三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。
```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。
2. 编写一个C语言程序,实现将一个字符串反转。
```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。
计算机二级C语言上机复习题及答案解析范文一份计算机二级C语言上机复习题及答案解析 1计算机二级C语言上机复习题及答案解析填空题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。
ss所指字符串数组__有N个字符串,且串长小于M。
程序中库函数strstr(s1, s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#define N 5#define M 15void fun(char (*ss)[M], char *substr){ int i,find=0;for(i=0; i __1__ ; i++)if( strstr(ss[i], __2__) != NULL ){ find=1; puts(ss[i]); printf(“\n"); }if (find==__3__) printf("\nDon't found!\n");}main(){ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];int i;printf("\nThe original string\n\n");for(i=0;i printf("\nEnter a string for search : "); gets(str);fun(x,str);}解题思路:本题是根据给定的字符串数组中查找指定的字符串,如果存在,则显示。
1.填空给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.c中不得增行或删行,也不得更改程序的结构!void check();/**********found**********/int fun(___1___ *std){/**********found**********/___2___ *fp; int i;if((fp=fopen("myfile5.dat","wb"))==NULL)return(0);printf("\nOutput data to file !\n");for(i=0; i<N; i++)/**********found**********/fwrite(&std[i], sizeof(STYPE), 1, ___3___);fclose(fp);return (1);}修改给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。
例如:当s中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”。
请改正程序中的错误,使他能得出正确的结果。
注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!void fun (char *s, char *t){ int i, sl;sl = strlen(s);/************found************/for( i=0; i<=s1; i ++)t[i] = s[i];for (i=0; i<sl; i++)t[sl+i] = s[sl-i-1];/************found************/t[sl] = '\0';}程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。
全国计算机考试二级c语言真题题库答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的数据类型?A. intB. floatC. doubleD. A、B和C都是答案:D2. 下列哪个是合法的C语言变量名?A. 2variableB. variable-nameC. _variableD. variable name答案:C3. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. =答案:A4. 以下哪个选项是C语言中的控制语句?A. ifB. switchC. whileD. A、B和C都是5. 在C语言中,哪个函数用于计算并返回一个浮点数的平方根?A. sqrt()B. pow()C. log()D. sin()答案:A6. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int [10] array;D. A和B都是答案:D7. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str = "Hello";D. A和B都是答案:D8. 在C语言中,以下哪个选项是正确的函数声明?A. void function();B. int function();C. void function(int a);D. A、B和C都是答案:D9. 在C语言中,以下哪个选项表示“或”逻辑操作?B. ||C. !D. =答案:B10. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int id;char name[50];} employee;B. struct employee {int id;char name[50];};C. A和B都是D. A和B都不是答案:C11. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr = NULL;D. A和C都是答案:D12. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fprintf()D. A、B和C都是13. 在C语言中,以下哪个选项表示“非”逻辑操作?A. &&B. ||C. !D. =答案:C14. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {Red, Green, Blue};B. enum {Red, Green, Blue} color;C. A和B都是D. A和B都不是答案:C15. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. const double PI = 3.14159;C. A和B都是D. A和B都不是答案:A16. 在C语言中,以下哪个选项是正确的联合体声明?A. union {int a;float b;} data;B. struct {int a;float b;C. A和B都是D. A和B都不是答案:A17. 在C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. A、B和C都是答案:D18. 在C语言中,以下哪个选项是正确的类型转换?A. (int)3.14B. (float)3C. A和B都是D. A和B都不是答案:C19. 在C语言中,以下哪个选项是正确的递归函数声明?A. void function();B. void function(int a);C. void function(void function());D. A和B都是答案:B20. 在C语言中,以下哪个选项是正确的预处理指令?A. #includeB. #defineC. #ifdefD. A、B和C都是二、程序填空题(每题5分,共20分)1. 请填写以下代码段中缺失的部分,以实现计算并打印一个整数的平方:```c#include <stdio.h>int main() {int num, square;scanf("%d", &num);square = num _____ num;printf("Square: %d\n", square);return 0;}```答案:*2。
计算机二级考试真题及答案c语言一、单项选择题(每题1分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. structB. unionC. intD. void答案:D2. 若有定义int a=5; 则执行以下语句后,变量a的值是多少?A. a=(a++)+(++a)+a;B. a=a--+(++a)+a;C. a=(a++)+(++a)+a--;D. a=(a++)+(++a)+a--;答案:A3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. /B. %C. *D. ^答案:C4. 下列哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. 'ab'D. '\t'答案:D5. 在C语言中,以下哪个选项是合法的数组声明?A. int a[5];B. int a[];C. int a[5][5];D. int a[5,5];答案:A6. 若有定义int x=10; 则执行以下语句后,变量x的值是多少?A. x=x+++x;B. x=++x+x--;C. x=x--+x++;D. x=x+++x--;答案:B7. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,以下哪个选项是合法的指针声明?A. int *p;B. int *p[];C. int (*p)();D. int (*p)[5];答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do{}while(0)D. all of the above答案:D10. 在C语言中,以下哪个选项是合法的函数声明?A. int func();B. void func(int a);C. int func(int a, int b);D. all of the above答案:D11. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. all of the above答案:A12. 在C语言中,以下哪个选项是合法的文件操作函数?A. fopenB. fcloseC. freadD. all of the above答案:D13. 在C语言中,以下哪个选项是合法的字符串操作函数?A. strcpyB. strncpyC. strcatD. all of the above答案:D14. 在C语言中,以下哪个选项是合法的动态内存分配函数?A. mallocB. callocC. reallocD. all of the above答案:D15. 在C语言中,以下哪个选项是合法的位操作运算符?A. &B. |C. ^D. all of the above答案:D16. 在C语言中,以下哪个选项是合法的预处理指令?A. #includeB. #defineC. #ifdefD. all of the above答案:D17. 在C语言中,以下哪个选项是合法的类型转换运算符?A. (int)xB. (float)xC. (char)xD. all of the above答案:D18. 在C语言中,以下哪个选项是合法的条件运算符?A. ?B. :C. ||D. &&答案:A19. 在C语言中,以下哪个选项是合法的多维数组声明?A. int a[5][5];B. int a[][5];C. int a[5][];D. int a[][];答案:A20. 在C语言中,以下哪个选项是合法的枚举类型声明?A. enum color {red, green, blue};B. enum {red, green, blue};C. enum color {0, 1, 2};D. all of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用关键字________声明一个函数。
计算机二级C上机考试题库及答案一、单项选择题(每题1分,共10分)1. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello, World!";B. char str[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};C. char str[] = {"Hello, World!"};D. char str[] = "Hello, World!";答案:A2. 下列哪个函数用于将字符串s1复制到s2中?A. strcat(s1, s2);B. strcpy(s1, s2);C. strcmp(s1, s2);D. strncpy(s1, s2, n);答案:B3. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A4. 如果一个变量被声明为static int,那么这个变量的生命周期是?A. 只在函数调用期间B. 程序运行期间C. 只在程序启动时D. 只在程序结束时答案:B5. 在C语言中,以下哪个运算符用于计算两个整数的差?A. +B. -C. *D. /答案:B6. 以下哪个选项不是C语言中合法的标识符?A. _myVarB. my_varC. 2ndVarD. var$name答案:C7. 在C语言中,以下哪个选项是正确的数组定义方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4};答案:A8. 以下哪个选项是正确的C语言注释方式?A. /* This is a comment */B. // This is a commentC. //* This is a commentD. /* This is a comment */答案:A9. 在C语言中,以下哪个选项是正确的多行字符串定义方式?A. char str[] = "Line1\nLine2";B. char str[] = 'Line1\nLine2';C. char str[] = "Line1\nLine2";D. char str[] = "Line1\nLine2";答案:A10. 在C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student {int id;char name[];};C. struct Student {int id;char name[50] = "John Doe";};D. struct Student {int id;char name[];};答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以对变量进行自增操作。
计算机二级《C语言》上机操作试题及答案计算机二级考试是全国计算机等级考试,四个等级中的一个等级,由教育部考试中心主办,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
下面是店铺收集整理的计算机二级《C语言》上机操作试题及答案,仅供参考,希望能够帮助到大家。
(1)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是( )。
A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA(2)下列叙述中正确的是( )。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的'(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。
A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)(4)下列叙述中正确的是( )。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是( )。
A.控制流B.事件驱动C.模块调用D.数据流(6)在软件开发中,需求分析阶段可以使用的工具是( )。
A.N—s图B.DFD图C.PAD图D.程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是( )。
A.一致性B.分类性C.多态性D.标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
A.一对一B.一对多C.多对一D.多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是( )。