全国二级考试计算机-二级C上机考试题库
全国计算机等级考试二级C语言上机题库完全版
第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。
全国计算机等级考试二级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语言中,使用________运算符可以对变量进行自增操作。
全国计算机等级考试2级C语言上机题库
第一套:1.1 填空给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶函数的数去除,剩余的书按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
void fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n)/**********found**********/{ t=*n % 10 ;/**********found**********/if(t%2!= 0){ x=x+t*i; i=i*10; }*n =*n /10; }/**********found**********/*n=x; }1.2 改错给定程序MODI1.C 中函数fun的功能是:计算n!。
double fun ( int n ){ double result = 1.0 ;/************found************/if (n == 0)return 1.0 ;while( n >1 && n < 170 )/************found************/result *= n--;return result ;}1.3 程序请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
long fun ( char *p){ /* 以下代码仅供参考*/int i, len, t; /* len为串长,t为正负标识*/long x=0;len=strlen(p);if(p[0]=='-'){ t=-1; len--; p++; }else t=1;/* 以下完成数字字符串转换为一个数字*/while(*p) x = x*10-48+(*p++);return x*t; }第二套:2.1填空给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数些到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
计算机二级c 上机考试题库80题答案
第1套一、填空题给定程序的功能是求1/4的圆周长。
函数通过形参得到圆的直径,函数返回1/4的圆周长(圆周长公式为:L=Πd,在程序中定义的变量名要与公式的变量相同)。
例如:输入圆的直径值:19.527,输出为:15.336457请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句。
#include<stdio.h>double fun(double d){return 3.14159*d/4.0;}main(){double z;printf("Input the d of the round:");scanf("%lf",&z);printf("L=%lf\n",fun(z));}二、改错题下列给定程序中函数fun的功能是:计算正整数m的各位上的数字之积。
例如,若输入202,则输出应该是0。
请修改程序中的错误,得出正确的结果注意:不要改动main函数,不能增行或删行,也不能更改程序的结构#include<stdio.h>#include<conio.h>long fun(long n){long r=1;do{r*=n%10;n/=10;}while(n);return(r);}main(){long m;printf("\nplease enter a number:");scanf("%ld",&m);printf("\n%ld\n",fun(m));}三、编程题请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整初的所有整数放在数组b中,通过n返回这些数的个数。
例如,若传送给m的值为20,则程序输出7 11 14。
请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
计算机二级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上机考试题库
104请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。
可调strlen函数求字符串长度。
例如:在键盘输入字符串2345210,函数返回长整型数2345210。
数字字符串转换为整数int len, t; long x=0; len=strlen(s);if(s[0]=='-') { t=-1; len--; s++; } else t=1;while(*s) x = x*10-48+(*s++);return x*t;填空:0 t (t-1)*(t+2)/2改错:b[i]=0;b[a[i] - 'a']++;if (b[max] <b[i])类型七:套用公式计算型73.编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n), 若n的值为11时,函数的值为1.833333。
int i,j,t; float s=0;for(i=1;i<=n;i++){ t=0; for(j=1;j<=i;j++) t+=j; s=s+1./t; } return s;填空:'\0' 0 c改错:double sum=0.0;sum /= c;74.编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。
Xn+1=cos(Xn)cos(x)-x=0的一个实根0.739085 float x0, x1=0.0;do { x0=x1; x1=cos(x0);} while(fabs(x0-x1)>0.000001);return x1;填空:i++ m m改错:while ((high >= 2) && (n < 10) )yes=0; break;75.若m的值为20,则fun函数值为6.506583。
计算机等级二级C语言上机考试题库
1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:1 5 7 23 87 5 8 21 45按升序排列时的中间数为:8处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include#define N 9int fun(int x[]){ int i,j,k,t,mid,b[N];for(i=0;i<N;I++)&NBSP;B[I]=X[I];for(i=0;i<=N/2;i++){ k=i;for(j=i+1;j<N;J++)&NBSP;IF(B[K]>b[j]) k=j;if(k != i ){/**********found**********/t=b[i]; b[i]=___1___; b[k]=t;}}/**********found**********/mid=b[___2___];for(i=0; i<N;&NBSP;I++)/**********found**********/if(x[i] ___3___ mid) x[i]=mid;return mid;}main(){ int i, x[N]={1,5,7,23,87,5,8,21,45};for(i=0; i<N;&NBSP;I++)&NBSP;&NBSP;PRINTF("%D&NBSP;",X[I]);printf("\nThe mid data is: %d\n",fun(x));for(i=0; i<N;&NBSP;I++)&NBSP;&NBSP;PRINTF("%D&NBSP;",X[I]);printf("\n");}2、给定程序中,函数fun的功能是建立一个N×N的矩阵。
全国计算机等级考试二级C语言上机考试题库100道
2 }
3. 请编写函数fun,它的功能是:求小于形参n同时能被3和7整除的所有自然数之和的平方根,并作函数的返回值。
double sum=0.0;
int i;
for(i=21;i<=n;i++)
if((i%3= =0)&&(i%7= =0))sum
1 *n 2 next 3 head
2. 给定程序MODI1.C中函数fun的功能是:求出s所指字符串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。
1 a=NULL; 2 if(*r==*p)
2. 给定程序MODI1.C中函数fun的功能是:按以下递推公式求函数值。例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14.
1 fun(int n) 2 if(n==1)
3. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
2给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母顺序的后续字母(但Z转化成A,z转换为a),其它字符不变。
1 while(*s) 2 s++;
3 请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于 等于n-1)的数组元素平移到数组的最后。
1 N 2 substr 3 0
2. 给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。
全国计算机二级考试上机考试题库
全国计算机二级考试上机考试题库一、选择题(每题2分,共50分)486机中的CPU同时能处理的二进制位数为()。
A. 8B. 16C. 32D. 64下列关于线性链表的描述中正确的是()。
A. 存储空间不一定连续,且各元素的存储顺序是任意的B. 存储空间不一定连续,且前件元素一定存储在后件元素的前面C. 存储空间必须连续,且前件元素一定存储在后件元素的前面D. 存储空间必须连续,且各元素的存储顺序是任意的如果希望每次打开PowerPoint演示文稿时,窗口中都处于幻灯片浏览视图,最优的操作方法是()。
A. 通过“视图”选项卡上的“自定义视图”按钮进行指定B. 每次保存并关闭演示文稿前,通过“视图”选项卡切换到幻灯片浏览视图C. 每次打开演示文稿后,通过“视图”选项卡切换到幻灯片浏览视图D. 在后台视图中,通过高级选项设置用幻灯片浏览视图打开全部文档在PowerPoint演示文稿中通过分节组织幻灯片,如果要选中某一节内的所有幻灯片,最优的操作方法是()。
A. 单击节标题B. 选中该节的一张幻灯片,然后按住Ctrl键,逐个选中该节的其它幻灯片C. 选中该节的第一张幻灯片,然后按住Shift键,单击该节的最后一张幻灯片D. 按Ctrl+A组合键下列关于软件测试的描述中正确的是()。
A. 软件测试的目的是证明程序是否正确B. 软件测试的目的是使程序运行结果正确C. 软件测试的目的是尽可能多地发现程序中的错误D. 软件测试的目的是使程序符合结构化原则在Excel工作表的右下角XFB1048573:XFD1048576区域中保存了一组常用数据,如需经常查看、调用、编辑这组数据,最优的操作方法是()。
A. 直接操作滚动条找到该区域,引用时用鼠标拖动选择即可B. 通过“定位条件”功能,定位到该工作表的最后一个单元格,引用时用鼠标拖动选择即可C. 直接在名称框中输入地址XFB1048573D. 为该区域定义一个名称,使用时直接引用该名称即可在Word2010中,要把某段落中包含3个汉字的词汇的宽度调整为4字符,最优的操作方法是()。
计算机等级考试-二级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语言上机题库
全国计算机等级考试二级c语言上机题库【例1】给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(unsignedlong*n){unsignedlongx=0,i;intt;i=1;while(*n){t=*n%__1__;if(t%2!=__2__){x=x+t*i;i=i*10;}*n=*n/10;}*n=__3__;}main(){unsignedlongn=-1;while(n>99999999||n<0){printf("Pleaseinput(0fun(&n);printf("\Theresultis:%ld\",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
给定程序MODI1.C中函数fun的功能是:计算n!。
例如,给n输入5,则输出120.000000。
【例2】请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includedoublefun(intn){doubleresult=1.0;ifn==0return1.0;while(n>1&&n<170)result*=n--returnresult;}main(){intn;printf("InputN:");scanf("%d",&n);printf("\\%d!=%lf\\",n,fun(n));}解题思路:第一处:条件语句书写格式错误,应改为:if(n==0)。
全国计算机二级C上机题库含答案
计算机等级考试二级C++模拟试题上机部分一、改错题使用VC6打开考生文件夹下的工程kt6_1,此工程包含一个源程序文件kt6_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:Constructor2Constructor1i=0i=10Destructor源程序文件kt6_1.cpp清单如下:#includeclassCSample{inti;public:CSample(){cout<<"Constructor1"<CSample(intval){cout<<"Constructor2"<~CSample(){cout<<"Destructor"<voiddisp();};/**********found**********/voiddisp(){cout<<"i="<voidmain(){CSample*a,b(10);/**********found**********/a->disp();/**********found**********/b->disp();}【参考答案】(1)将void disp()改为:void CSample::disp()(2)将a->disp();改为:a=new CSample; a->disp();(3)将b->disp();改为:b.disp();【试题解析】(1)主要考查类成员函数定义格式的熟练掌握,对于类体外函数的实现,应该使用作用域符"::",按照返回值类型类名::函数名(参数列表)的形式进行说明;(2)主要考查对动态存储分配的掌握,根据前面的定义,a是一个指针类型的变量,指向一个对象,但是并没有被初始化,此时a中的数据无任何意义,应该使用动态存储分配new 生成一个新的对象,并将返回的指针赋值给a;(3)主要考查对象指针与对象在调用成员函数时格式的不同,b是一个对象变量,使用b 调用成员函数应该用"."运算符。
全国计算机二级C语言上机题库及答案
a[j] = a[i]; ___2___;
}
/**********found**********/
return ___3___;
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n;
{ t = a[i]; a[i] = min; a[pn] = t;
if (px == i) px =pn;
}
if (px != i+1)
{ t = a[i+1]; a[i+1] = max; a[px] = t; }
}
3.给定程序中,函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,若形参s所指的字符串为abcdef35adgh3kjsdf7,则输出结果为4。
请在下划线处填入正确内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
{ unsigned long x=0; i
/**********found**********/
if(t%2==____1____)
/**********found**********/
x=____2____+t;
printf("\nThe result is: %f\n",fun(e));
}
【参考答案】
(1)3.0或(double)3 (2)> (3) (t+1)
2. 下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。
全国计算机等级考试(二级C)上机题库100题.doc
int vectorLVSTZEJ;
/*注:该题的算法是用一个变量(j)来存储最小值 元素的下标,在循环过程中让每个元
素都与原最小值元素进行大小比较
(if (list[i]〈list[j]),如发现更小的则让j重新 拥有最小值元素的下标(j=i)o */
int fun(int 1ist[], int size)
printf ("The sum of even number:%d\n", even);
)
4、要求程序的功能是:把20个随机数存入一个 数组,然后输出该数组中的最小值。其
中确定最小值的下标的操作在fun函数中实现,请 给出该函数的定义。
试题程序。
#include <stdio. h>
■include <conio. h>
fun(int *a, int n, int *odd, int *even)
( int i; *cvcn=0;*odd=0;
for(i=0;i〈n;i++)
if(!(a[i]%2))
*even+=a[i];
else
*odd+=a[i];
}
main()
( int a[N]=(l, 9, 2, 3, 11,6), i, n=6, odd, even;
}
i=fun(vector, VS1ZE);
printf ('AnMininum: vector [%d] =%6d\n,\ i, vecto r[i]);
}
5、清编一个函数float fun (double h),函数的 功能是对变量h中的值保留2位小数,并
计算机二级c考试试题及答案
计算机二级c考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x123B. 123.0C. 0123D. 123E答案:A2. 关于C语言中的指针,以下说法正确的是?A. 指针可以存储任何类型的数据B. 指针可以存储变量的地址C. 指针本身没有类型D. 指针不能被赋值答案:B3. 下列关于函数的描述,错误的是?A. C语言中的函数可以没有返回值B. 函数可以嵌套定义C. 函数可以有多个返回值D. 函数可以被递归调用答案:B4. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A5. 关于数组,以下说法正确的是?A. 数组的大小在定义时必须确定B. 数组的元素可以是不同类型的C. 数组的索引从1开始D. 数组可以动态分配大小答案:A6. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B7. 下列关于文件操作的描述,错误的是?A. 文件操作需要包含头文件`stdio.h`B. 可以使用`fopen`函数打开文件C. `fclose`函数用于关闭文件D. 文件指针是用于指向文件的指针答案:A8. 在C语言中,以下哪个选项是合法的字符常量?A. 'A'B. "A"C. 'AB'D. '\t'答案:D9. 关于C语言中的预处理指令,以下说法正确的是?A. `#include`用于包含头文件B. `#define`用于定义宏C. `#ifdef`用于条件编译D. 以上都是答案:D10. 在C语言中,以下哪个关键字用于声明一个枚举类型?A. enumB. unionC. structD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,`int main()`函数的返回类型是________。
全国计算机考试二级C上机考试
全国计算机考试二级C上机考试300题1-10套上机题11.填空题请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。
例如:当str[N]="123 abcdef ABCDEF!",结果输出:"123 ABCDEF ABCDEF!"。
2. 改错题下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。
例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf 3. 编程题请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。
例如,当a=16,b=35,调用该函数后,c=5361。
21.填空题请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。
方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则要求重新输入a、b、c的值。
例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。
2. 改错题下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。
y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m)例如:m中的值为5,则应输出0.838611。
请改正程序中的错误,使它能得到正确结果。
3. 编程题请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。
全国计算机2级c试题及答案
全国计算机2级c试题及答案一、单项选择题(每题1分,共20分)1. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = {"Hello"};D. char str[6] = {"Hello"};答案:A2. 下列关于C语言中数组的描述,错误的是?A. 数组的索引从0开始。
B. 数组的大小在声明时必须确定。
C. 数组可以存储不同类型的数据。
D. 数组的元素在内存中是连续存储的。
答案:C3. 在C语言中,哪个关键字用于声明函数?A. classB. functionC. defD. int答案:D4. 以下哪个选项是C语言中的合法整数常量?A. 0x1AB. 01AC. 1.2E3D. 0b1010答案:A5. C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释*/答案:B6. 在C语言中,以下哪个选项是正确的二进制数表示?A. 0b1010B. 0x2AC. 0101D. 02A答案:A7. 以下哪个选项是C语言中的合法浮点数常量?A. 1.23B. .23C. 123.D. 1.23E+5答案:D8. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int a;float b;};B. struct Student {int age;float height;};C. struct Student {int age;float height;} student1;D. All of the above答案:D9. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int *p = 0;C. int *p = NULL;D. All of the above答案:D10. 以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include "stdio"D. #include <stdio>答案:A11. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159;D. #define PI 3.14159答案:A12. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0)B. if x > 0C. if (x > 0) {// code}D. All of the above答案:C13. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for (i = 0; i < 10; i++)C. for (int i = 0; i <= 10; i++)D. All of the above答案:A14. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. All of the above答案:D15. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {RED, GREEN, BLUE};B. enum {RED, GREEN, BLUE};C. enum Color {0, 1, 2};D. All of the above答案:D16. 在C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. All of the above答案:D17. 在C语言中,以下哪个选项是正确的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D18. 在C语言中,以下哪个选项是正确的类型转换?A. (int)xB. int(x)C. x(int)D. All of the above答案:A19. 在C语言中,以下哪个选项是正确的多文件程序结构?A. main.cB. main.hC. main.c and main.hD. All of the above答案:C20. 在C语言中,以下哪个选项是正确的内存分配方式?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类型一:调整一个数的个、十、百、千位1•请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12,调用该函数后C=4152。
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);填空:STYPE FILE Fp改错:for( i=0; i<=sl; i ++) 把s后字母改为小写Lt[2*sl] = '\0:2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
例如,当a=45,b=12,调用该函数后c=1524o*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);填空:*fw str str改错:void fun (1 ong s,l ong *t)sl=sl*10;3.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12,调用该函数后C=2514。
*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);填空:fp fclose(fp) fname改错:for ( i=j+1; i<=n_1 ; i++ )p=i;4.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12,调用该函数后C=5142o*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);填空:"r" fs ft改错:if (d%2==0)s /= 10;5.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。
例如,当a=45,b=12,调用该函数后C=5241。
*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);填空:k N-1 temp改错:fun(int a[][M], int m) a[j][k]=(k+1)*(j+1);6.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12,调用该函数后C=2415o*c = (b%10)*1000+(a/10)*100+(b/10)*10+a%10;填空:struct stude nt * a->score[i] a改错:char *fun (char (*sq)[M])return sp;类型三:与下标或ASCII码有关{if(ss[i]>= 'a' && ss[i]<= 'z') ss[i]-=32; }填空:k N a[k][i]改错:for( i = strle n( t )-1; i; i--)if(t[j]>t[j+1])if((i % 2) && (*p >= 'a' && *p <= 'z')) *p -=32 ; p++ ; i++ ; }return ss ;填空:NULL n head,ch改错:for (i = 0,t = 0; p[i] ; i++)c[t]= '\0';22.请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
下标为偶数字符删除int i, j = 0 ;for(i=1; i<strle n(s); i+=2) t[j++]=s[i];t[j] = 0 ;填空:data n ext head改错:while(*r)*a = *r; a++; r++;23.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。
除首尾外其余ASCII码降序char ch ; int i, j ;for(i = 1 ; i < 6 ; i++)for(j = i + 1 ; j < 6 ; j++){ if(*(s + i) < *(s + j)){ ch = *(s + j) ; *(s + j) = *(s +i) ; *(s +i) = ch ; } }填空:ss[i] n+j 1改错:if(* p =='')*(p-1) = toupper( *( p - 1 ));24.请编写函数fun,其功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
ASCII码值为偶数删除int i, j = 0 ;for(i = 0 ; i < strle n(s); i++)if(s[i] % 2) t[j++] = s[i];t[j] = 0 ;填空:STU std[i]. num std[i]改错:r++; p++ ;if(*r==0) 25.请编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
ASCII值为奇数删除int i, j = 0 ;for(i = 0 ; i < strlen(s); i++) if(s[i] % 2==0) t[j++] = s[i];t[j] = 0 ;填空:s[i] k '\0'改错:while(*w)if( *r == *p )26.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除除下标偶数同时ASCII码值偶数之外其余全部删除int i, j = 0 ;for(i = 0 ; i < strle n(s) ; i += 2)if(s[i] % 2 == 0) t[j++] = s[i];t[j] = 0 ;填空:*n next head改错:a = NULL;if(*r==*p)27.请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、冋时ASCII值也为奇数的字符之外,其余的所有字符都删除除下标奇数同时ASCII码也为奇数外其余字符删除int i, j = 0 ;for(i = 1 ; i < strle n(s) ; i += 2)if(s[i] % 2) t[j++] = s[i];t[j] = 0 ;填空:0 i++ *i改错:void fun (char *s, char *t)28.请编写函数fun,其功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。
将下标为偶数同时ASCII码为奇数删除int i, j = 0 ;for(i = 0 ; i < strle n(s) ; i++)if(!((i % 2) ==0 && (s[i] % 2))) t[j++]=s[i];t[j] = 0 ;填空:j k p改错:while(i<j)103.请编写函数fun,函数的功能是查找x在s所指数组中下标的位置作为函数值返回,若x不存在,则返回-1int i;for(i=0;i<N;i++) {if(x==s[i]) retur n i;}return -1;填空:i%5 \n a[i]改错:return t;for(i=0;i<N;i++) t[i]=x[i];x[i+1]=fi ndmid(a,b,c);类型四:数组和矩阵操作29.请编写函数fun,该函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。
下标0-p移到数组最后int i, j = 0, b[N];for(i = p + 1 ; i < n ; i++) b[j++] = w[i];for(i = 0 ; i <= p ; i++) b[j++] = w[i];for(i = 0 ; i < n ; i++) w[i]= b[i];填空:p->n ext q p->next改错:while(*s)s++;30.请编与函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。
删除一维数组相同的数int i, j = 1, k = a[0];for(i = 1 ; i < n ; i++)if(k != a[i]) { a[j++]=a[i] ; k = a[i] ; }a[j] = 0 ;return j ;填空:FILE * fclose(fp) fp改错:t=(STU *)calloc(sizeof(STU),m);t[k]=b[j];31.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。
找出一维数组最大值及其下标int i ;*max=a[0];*d = 0 ;for(i = 1; i < n; i++)if(*max < a[i]) { *max = a[i]; *d = i ; } 填空:1 2*i (-1)改错:k++;if (m == k )32.请编与一个函数int fun(int *s,int t,int *k), 用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
求数组最大元素及下标int i, pos = 0, max = *s ;for(i = 1 ; i < t ; i++){ if(max < *(s + i)){ max = *(s + i) ; pos = i ; } }*k = pos ;填空:n++ 0 s++改错:t+=s[k];*ave=ave;33.请编写函数fun(inta[][N],int n), 该函数的功能是:使数组左下半三角元素中的值乘以n。