二级C语言上机题库及答案
计算机二级C语言上机题库及答案(100套)

计算机二级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语言上机考试题库及答案

第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上机考试题库及答案

计算机二级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语言》上机操作试题及答案计算机二级考试是全国计算机等级考试,四个等级中的一个等级,由教育部考试中心主办,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
下面是店铺收集整理的计算机二级《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)在数据管理技术发展的三个阶段中,数据共享最好的是( )。
计算机二级C上机考试题库及答案

计算机二级C上机考试题库及答案在计算机二级C语言上机考试中,考生需要掌握C语言的基本语法、数据结构、算法设计等知识。
以下是一套模拟题库及答案,供考生参考和练习。
1. 题目:以下哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B解析:在C语言中,标识符可以由字母、数字和下划线组成,且不能以数字开头。
因此,只有选项B中的"variable2"是合法的标识符。
2. 题目:以下哪个选项是C语言中的整型常量?A. 0x1AB. 1.2E3C. 0.5D. 1.2答案:A解析:整型常量可以是十进制、八进制或十六进制的整数。
选项A中的"0x1A"是十六进制的整型常量,而选项B、C和D都是浮点型常量。
3. 题目:以下哪个选项是C语言中的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello" "World"D. 'H' "ello" 'W' "orld"答案:A解析:字符串字面量是由双引号括起来的字符序列。
选项A中的"Hello World"是一个合法的字符串字面量。
选项B是字符字面量,选项C和D的组合方式在C语言中不合法。
4. 题目:以下哪个选项是C语言中的合法数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int b[] = {1, 2, 3, 4, 5};C. int c[5] = {1, 2, 3};D. int d[];答案:A解析:在C语言中,数组的声明需要指定数组的大小,除非数组作为函数的参数。
选项A正确地声明了一个大小为5的整型数组,并初始化了它的元素。
二级C语言上机考试题及答案

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语言上机真题及答案(最新完整版)

1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值1.int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i-0;i<m;i++)aver+=score[i];aver/=m;for(i=0,i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2.请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书2.void fun(int *a,int *n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0//i%11==0))&i%77!=0)a[j++]=i;*n=j;}3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按3. void fun(int x, int pp[],int *n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,4. void fun(char *tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while (*tt){switch(*tt){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}tt++;}}5.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数5. void fun(int m,int k,int xx[]){int g=0,i,j,flag=1;for(i=m+1;i<m*m;i++){for(j=2;j<i;j++){if (i%j!=0)flag=1;else{flag=0;break;}}if (flag==1&j>=i){if (k>0){xx[g++]=i;k--;}elsebreak;}}}6.请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。
二级c语言上机考试题库答案

二级c语言上机考试题库答案1. 题目:编写一个C语言程序,计算并输出两个整数的和。
```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}```2. 题目:编写一个C语言程序,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverse(char str[]) {int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);printf("反转后的字符串为:");reverse(str);printf("\n");return 0;}```3. 题目:编写一个C语言程序,计算并输出一个3x3矩阵的转置矩阵。
```c#include <stdio.h>#define ROWS 3#define COLS 3void transposeMatrix(int matrix[ROWS][COLS], inttransposed[COLS][ROWS]) {for (int i = 0; i < ROWS; i++) {for (int j = 0; j < COLS; j++) {transposed[j][i] = matrix[i][j];}}}void printMatrix(int matrix[ROWS][COLS]) {for (int i = 0; i < ROWS; i++) {for (int j = 0; j < COLS; j++) {printf("%d ", matrix[i][j]);}printf("\n");}}int main() {int matrix[ROWS][COLS] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int transposed[COLS][ROWS];transposeMatrix(matrix, transposed);printf("原始矩阵:\n");printMatrix(matrix);printf("转置矩阵:\n");printMatrix(transposed);return 0;}```4. 题目:编写一个C语言程序,实现冒泡排序算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一处1第二处:j++第三处:j
改错题
#include <stdio.h>
int fun(int a,int b)
{ int r,t;
if(a<b) {
/************found************/
t=a; b=a; a=t;
}
r=a%b;
while(r!=0)
{ a=b; b=r; r=a%b; }
第一套题
上机填空:
#include <stdio.h>
double fun(double e)
{ int i, k; double s, t, x;
s=0; k=1; i=2;
/**********found**********/
x=__1__/4;
/**********found**********/
a[j] = a[i]; ___2___;
}
/**********found**********/
return ___3___;
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n;
printf("\nThe original data :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
for (i=0; i<n-1; i+=2)
{
/**********found**********/
max = min = ___1___;
px = pn = i;
for (j=i+1; j<n; j++) {
/**********found**********/
if (max<___2___)
{ max = a[j]; px = j; }
fun(s, &t);
printf("The result is: %ld\n", t);
}
第一处错误:将t=0改为*t=0;
第二处错误:将d%2 == 0改为d%2!=0
第六套题:
# include <stdio.h>
#define N 9
void fun(int a[], int n)
{ int i,j, max, min, px, pn, t;
}
return s;
}
main()
{ int n=-1;
while(n<0)
{ printf("Please input(n>0): "); scanf("%d",&n); }
printf("\nThe result is: %f\n",fun(n));
第一处空答案:0
第一处空答案:n
第三处空答案:(t*t)
第三套题
填空题
#include <stdio.h>
void fun(char *s, int *t)
{ int i, n;
n=0;
/**********found**********/
for(i=0; ___1___ !=0; i++)
/**********found**********/
if(s[i]>='0'&&s[i]<= ___2___ ) n++;
/************found************/
return(a);
}
main()
{ int num1, num2,a;
printf("Input num1 num2: "); scanf("%d%d",&num1,&num2);
printf("num1= %d num2= %d\n\n",num1,num2);
printf("\n");
n = fun(b, N);
printf("\nThe number of odd : %d \n", n);
printf("\nThe odd number :\n");
for (i=0; i<n; i++) printf("%4d ", b[i]);
printf("\n");
printf("\nThe result is: %ld\n",fun(n));
}
第一空:0第二空:x*10第三空:n/10
改错题:
#include <stdio.h>
void fun (long s, long *t)
{ int d;
long sl=1;
/************found************/
第五套题:
填空题:
#include <stdio.h>
unsigned long fun(unsigned long n)
{ unsigned long x=0; int t;
while(n)
{ t=n%10;
/**********found**********/
if(t%2==____1____)
a=fun(num1,num2);
printf("The maximun common divisor is %d\n\n",a);
}
第一处错误:t=a; b=a; a=t;改为t=a;a=b;b=t;
第二处错误:return(a)改为return b或者return(b);
求最大公约数算法一般采用辗转相除法。辗转相除法的算法为:首先将m除以n(m>n)得余数r,再用余数r去除原来的除数,得到新的余数,重复此过程直到余数为0时停止,此时的除数就是m和n的最大公约数。
}
第一处改错:将:void fun ( int n )改为double fun ( int n )
第二处改错:s = s + (Double)a / b;改为s = s + (double)a / b;
第二套题
上机填空题
#include <stdio.h>
double fun(int n)
{ int i; double s, t;
/**********found**********/
___3___ ;
}
main()
{ char s[80]="abcdef35adgh3kjsdf7";
int t;
printf("\nThe original string is : %s\n",s);
fun(s,&t);
printf("\nThe result is : %d\n",t);
第四套题:
填空题
#include <stdio.h>
#definቤተ መጻሕፍቲ ባይዱ N 9
int fun(int a[], int n)
{ int i,j;
j = 0;
for (i=0; i<n; i++)
/**********found**********/
if (a[i]%2==___1___)
{
/**********found**********/
return(y) ;
}
main()
{
int a = 3, b = 8 ;
printf("%d %d\n", a, b) ;
b = fun(&a, b) ;
printf("%d %d\n", a, b) ;
}
第一处改错:将t = x ; x = y ;改为t=*x;*x=y;
第二处改错:将return(y)改为return(t)
/**********found**********/
x=____2____+t;
/**********found**********/
n=____3____;
}
return x;
}
main()
{ unsigned long n=-1;
while(n>99999999||n<0)
{ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }
}
第一空:s[i]第二空:’9’第三空:*t=n
改错题:
#include <stdio.h>
int fun(int *x,int y)
{
int t ;
/**************found**************/
t = x ; x = y ;
/**************found**************/
}
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7}, i;
printf("\nThe original data :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
fun(b, N);
printf("\nThe data after moving :\n");