江西省二级C上机题库
全国计算机等级考试二级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中。
江西省高校计算机等级考试2级(C语言)考试试题及答案
江西省计算机2级(C语言)考试试题及答案1、计算机基础部分(30分)试题一、选择题(每个选项1分,共30分)。
考生从提供的答案中选择一个正确的,并把所选答案的字母填入答题卡对应栏内。
1、在计算机内部,一切信息均表示为 A 。
(1) A、二进制数B、十进制数C、BCD码D、ASCII码2、通常所说的计算机系统是由 A 组成。
(2) A、硬件系统和软件系统B、软件C、硬件和数据库系统D、硬件系统和语言编译系统3、二进制数11011101转换为十进制数是 B 。
(3) A、220 B、221 C、251 D、3214、CPU不能直接访问的存储器是 B 。
(4) A、内存储器B、外存储器C、ROM D、RAM5、具有多媒体功能的微型计算机系统,通常都配有CD—ROM,这是一种 D 。
(5) A、只读存储器B、只读大容量软盘C、只读硬盘存储器D、只读光盘存储器6、CAI是计算机的应用领域之一,其含义是 A 。
(6) A、计算机辅助教学B、计算机辅助制造C、计算机辅助测试D、计算机辅助设计7、简单地说文件名是由 B 两部分组成的。
(7) A、文件名和基本名B、主文件名和扩展名C、扩展名和后缀D、后缀和名称8、在微型计算机中,唯一能够直接识别和执行的语言是 A 。
(8)A、机器语言B、汇编语言C、高级语言D、数据库语言9、操作系统是一种 C 。
(9) A、便于计算机操作的硬件B、便于计算机操作的规范C、管理计算机系统资源的软件D、计算机系统10、多媒体技术是 D 。
(10) A、超文本处理技术B、文本和图形技术C、一种图像和图形处理技术D、计算机技术、电视技术和通信技术相结合的综合技术11、下列四种软件中属于应用软件的是 A 。
(11) A、财务管理系统B、Windows C、DOS D、UNIX12、菜单是Windows98下的一种重要操作手段,要想执行下拉菜单中的某个操作,应B(12) A、通过键盘输入菜单中的该操作命令项的文字(如:“打开”、“复制”)B、用鼠标单击下拉菜单中的该操作令项C、选择菜单中的该操作命令项,然后按键盘上空格键D、在窗口内任意一个空白位置单击鼠标键13、http是一种 C 。
计算机二级C语言上机复习题及答案解析范文一份
计算机二级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);}解题思路:本题是根据给定的字符串数组中查找指定的字符串,如果存在,则显示。
计算机二级C语言考试上机试题及答案
xx年计算机二级C语言考试上机试题及答案1.算法的空间复杂度是指( )。
A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.以下表达中正确的选项是( )。
A.一个逻辑数据构造只能有一种存储构造B.逻辑构造属于线性构造,存储构造属于非线性构造C.一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D.一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率3.简单的交换排序方法是( )。
A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于构造化程序设计原那么和方法的描述错误的选项是( )。
A.选用的构造只准许有一个入口和一个出口B.复杂构造应该用嵌套的根本控制构造进展组合嵌套来实现C.不允许使用GOT0语句D.语言中假设没有控制构造,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
A.可重用性差B.平安性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的根本原理是( )。
A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.对如下二叉树进展后序遍历的结果为( )。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.软件设计包括软件的构造、数据接口和过程设计,其中软件的过程设计是指( )。
A.模块间的关系B.系统构造部件转换成软件的过程描述C.软件层次构造D.软件开发过程9.两个或两个以上模块之间关联的严密程度称为( )。
A.耦合度B.内聚度C.复杂度D.数据传输特性10.以下描述错误的选项是( )。
A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合11.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
计算机二级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试题(江西)
全省2级C1 程序改错题gc506.c程序的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存到原来的字符串中。
请改正程序中的两处错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include "stdio.h"#include "stdlib.h"#define N 80main(){ int j;char s[N]="123abcdef ABCDEF!";char *p=s;printf("***original string***\n");puts(s) ;j=0;while(*(p+j)){ if(*(p+j)>='a'&&*(p+j)<='z'){ *(p+j)= *(p+j)+32;j++;}elsej--;}printf("***new string***\n");puts(s);system("pause") ;}程序填空题tk506.c功能是:把一个整数转换成字符串,并倒序保存在字符数组s中。
请补充fun函数中的两处空,使它能得出正确的结果。
不得增行或删行,也不得更改程序的结构。
#include "stdio.h"#define N 80char s[N];void fun(long int n ){ int i=0;while(n>0){ s[i]= n%10 +'0';n=( 1 );i++;}s[i]=( 2 );}main (){ long int n=12345;printf("***the origial data***\n");printf("n=%ld",n);fun(n);printf("\n%s",s);}2. 程序改错题gc166.c程序的功能是:计算并输出从键盘输入的任一正整数的各位数字之和s以及各位数字之积t。
计算机二级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 上机考试题库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的花括号中填入所编写的若干语句。
江西计算机省二级试题及答案 09二级c填空改错答案
for(j=2;j<=i/2;j++)
{ if(i%j==0)
{
xx[t]=i;
t++;
break;
}
}
*k=t;
}
5
unsigned fun ( unsigned w )
4: 01 if(('a'<=tt[i])&&(tt[i]<='z')) 02 tt[i]-=32;
5: 01 m=i; 02 if(a[k]>a[m]) m=k;
6: 01 fun (char *a) 02 printf("%c",*a);
7: 01 for(i=2;i<=m;i++) 02 y+=1.0/i/i;
}
while(*p)
{
*b=*p;
b++;
p++;
}
*b=0;
}
9
void fun( char *a,int n )
{
int i=0,j;
25、01 *n 02 next 03 head
26、01 ss[i] 02 n+j 03 1
27、01 && 02 'A' 03 ch
28、01 a[i] 02 a[i] 03 0
29、01 q 02 next 03 next
30、01 a 02 a 03 b
科益二级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上机题库答案分类汇总(可打印版)
a与b合并成c85 填空 STYPE FILE fp改错for(i=0;i<=sl;i++) t[sl*2]='\0';将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
4152 *c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;56 填空 *fw str str改错void fun(long s,long *t) sl=sl*10; 将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
1524 *c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;22 填空 fp fclose(fp) fname改错 for(i=j+1;i<n;i++) p=i; 将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
2514 *c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;33 填空”r” fs ft改错 if(d%2==0) s/=10; 将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
5142 *c=(a%10)*1000+(b/10)*100+(a/10)*10+b%10;83 填空 0 x t++改错 int i,sl; t[i]=s[sl-i-1]; 将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。
1425 *c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;80 填空 1 s i*10改错 int fun(int n,int xx[][M])printf("%d",xx[i][j]); 将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。
计算机等级考试-二级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试题及答案一、单项选择题(每题2分,共40分)1. 在Java中,以下不属于基本数据类型的是()。
A. booleanB. intC. byteD. String答案:D2. 在数组int[] arr = {1,2,3,4,5} 的基础上,执行arr[2] = 6; 后,数组arr的元素为()。
A. {1,2,3,4,5}B. {1,2,6,4,5}C. {1,2,6}D. 无法确定答案:B3. 下面哪个关键字可以将一个值传递给被调用方法,同时也可以接收被调用方法的返回值()。
A. extendB. breakC. returnD. super答案:C4. 以下哪个是Java中的保留字()?A. lioB. conC. intD. dim答案:C5. 下面关于泛型的描述中,正确的是()。
A. 泛型只能用于集合类B. 泛型只能用于类的定义中C. 泛型可以保证类型安全D. 泛型只能用于接口的定义中答案:C...二、编程题请编写一个Java程序,实现以下需求:输入一个整数n,从1开始循环打印数字,但要满足以下条件:1. 当打印到n时,如果这个数是3的倍数或者含有数字3,不打印该数,直接打印下一个数。
2. 当打印到n时,如果这个数是5的倍数或者含有数字5,不打印该数,直接打印下一个数。
3. 当打印到n时,如果这个数是7的倍数或者含有数字7,不打印该数,直接打印下一个数。
4. 当打印到n时,如果这个数是11的倍数或者含有数字11,不打印该数,直接打印下一个数。
要求程序尽可能地简洁高效。
答案:```javaimport java.util.ArrayList;import java.util.List;public class NumberPrinter {public static void main(String[] args) {int n = 100;List<Integer> excludeList = new ArrayList<>();excludeList.add(3);excludeList.add(5);excludeList.add(7);excludeList.add(11);for (int i = 1; i <= n; i++) {if (isExcluded(i, excludeList)) {continue;}System.out.println(i);}}private static boolean isExcluded(int num, List<Integer> excludeList) {if (num % 100 == 0) {return true;}for (int excludeNum : excludeList) {if (num % excludeNum == 0 ||String.valueOf(num).contains(String.valueOf(excludeNum))) {return true;}}return false;}}```以上是江西省计算机二级C试题及答案的内容,希望对您有所帮助。
NCRE题库二级C语言
第1套上机操作题一、程序填空题【微答案】(1) 0 (2) i++或++i或i+=1或i=i+1 (3)2.0*i【微分析】填空1:循环变量1从开始参加运算,但是在每次循环的开始i都进行自加1操作,故i应赋初值为0。
填空2:循环变量i自增1运算。
填空3:根据公式确定表达式通项。
注意x为double类型,故应将i变为double类型再进行运算。
二、程序修改题【微答案】(1)void fun ( char *s , char *t )(2)t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;【微分析】(1)从调用函数来看,函数传递的是数组,所以函数的形参应为指针。
(2) 循环结束后回文字符的个数为2*d个,因为数组下标是从0开始的,所以最后一个字符的下标为2*d-1,在最后一个字符的后面加上结束符'\0',因此为t[2*d]='\0';。
三、程序设计题【微答案】void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(i%2!=0&&s[i]%2!=0){t[j]=s[i]; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j++;}t[j]='\0'; /*最后加上结束标识符*/}【微分析】本题要求除了下标为奇数同时ASCII码值也为奇数的字符之外,其余的所有字符都删除。
即要留下下标为奇数同时ASCII码值也为奇数的字符。
所以if的条件语句中应使用if(i%2!=0&&s[i]%2!=0)。
第2套上机操作题一、程序填空题【微答案】(1)t=i (2) i (3) '\0'或0【微分析】本题中第一个for循环的作用是得到字符串的长度,第二个for循环的作用是对下标为奇数的字符按ASCII码大小排序,最后将排好序的字符取出。
江西高校计算机二级C等级考试样题
江西高校计算机二级C等级考试样题2.程序改错题gc369.c功能为:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
程序中有两处错误代码,请指出并改正之。
不得增加行或删除行,也不得更改程序结构。
/*Find the saddle point*/#include<stdio.h>#define N 5#define M 5main(){int i,j,k,flag1,flag2,a[N][M],max,maxi,maxj;for (i=0;i<N;i++)for (j=0;j<M;j++)scanf("%d",&a[i][j]);flag2=0;for (i=0;i<N;i++){max=a[0][0];for (j=0;j<M;j++)if (a[i][j]>max) {max=a[i][j];maxj=j;}for (k=0,flag1=1;k<N&&flag1;k++)if (max>a[k][maxj])flag1=0;if (flag1) {printf("\nThe saddle point is:%d,%d,%d\n",i,maxj,max);flag2=1;}}if (flag2)printf("\nThere is no saddle point in the Matrix\n");}1、程序填空题tk369.c中有整形数组a[ ]。
通过调用子程序inv(),对a[ ]数组中的元素,反向交换存储位置。
请在括号[ ]处补充完整程序,并删除[ ],运行测试,实现上述要求。
不得增加行或删除行,也不得更改程序结构。
void inv(int x[],int n){int temp,i,j,m=[ ];for(i=0;i<=m;i++){j=n-i-1;temp=x[i];[ ];x[j]=temp;}return;}main(){int a[10]={4,5,6,7,8,9,10,11,12,88};int i;printf("The original array:\n");for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");inv(a,10);printf("The reverse array:\n");for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");}2.程序改错题( 每错10分,共20分)程序gc137.c中的sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。
全国二级考试计算机-二级C上机考试题库
类型一:调整一个数的个、十、百、千位1.请编写函数fun,其功能是:将两个两位数的正整数2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是将a、b合并形成一个整数放在c中。
合并的方式是将a数的十位和个位数依次放在c数的千位和十位上,b a数的十位和个位数依次放在c数的个位和百位上,b 数的十位和个位数依次放在c数的百位和个位上。
数的十位和个位数依次放在C数的千位和十位上。
例如,当a=45,b=12,调用该函数后C=4152。
例如,当a=45,b=12,调用该函数后C=1524。
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10); *c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);填空:STYPE FILE Fp 填空:*fw str str改错:for( i=0; i<=sl; i ++) 把s后字母改为小写L 改错:void fun (1 ong s,l ong *t)t[2*sl] = '\0'; sl=sl*10;3.请编写函数fun,其功能是:将两个两位数的正整数4.请编写函数fun,其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是将a、b合并形成一个整数放在C中。
合并的方式是将a数的十位和个位数依次放在c数的个位和百位上,b a数的十位和个位数依次放在C数的十位和千位上,b 数的十位和个位数依次放在c数的十位和千位上。
数的十位和个位数依次放在C数的百位和个位上。
例如,当a=45,b=12,调用该函数后C=2514。
例如,当a=45,b=12,调用该函数后C=5142。
*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10); *c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);填空:fp fclose(fp) fname 填空:"r" fs ft改错:for ( i=j+1; i<=n_1 ; i++ ) 改错:if (d%2==0)p=i; s /= 10;5.请编写函数fun,其功能是:将两个两位数的正整数6.请编写函数fun,其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、程序改错题。
gc22.c程序是输入一个字符串,将此字符串中最长的单词输出,程序在注释行附近有两个错误,请试调试改正,但调试改正中不得增删语句。
int alph(char c){if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))return(1);elsereturn(0); /* find 1 */}int longest(char *str){int len=0,i,length=0,flag=1,point,place;for(i=0;i<=strlen(str);i++)if(alph(str[i]))if(flag){flag=0;point=i;}elselen++;else /* Find 2 */ {flag=1;if(len>length){ length=len;place=point;len=0; }}return(place);}main( ){int i;char line[100];printf("Enter string\n");gets(line);printf("the longest is:");for(i=longest(line);alph(line[i]);i++)printf("%c",line[i]);printf("\n");}二、程序填空题tk22.c是打印出杨辉三角形,在空白处将程序补充完整,运行得出正确结果。
11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1...#define N 11 main( ){int I,j,a[N][N];for (I=1; I<N; I++) { a[I][I]=1;a[I][1]=1; //}for (I=3;I<N; I++)for ( j=2;j<I;j++ )//a[I][j]=a[I-1][j-1]+a[I-1][j];for (I=1;I<N;I++){ for (j=1;j<=I;j++)printf("%6d",a[I][j]);printf("\n");}printf("\n");}一、程序改错题(20分)。
下列程序是建立一个包含学生有关数据的单向链表。
但该程序有2个错误,错误出现在每个注释行附近,请调试改正。
调试改正中,不得改变程序结构,也不得增删语句。
#define NULL 0struct stud{long num;char name[10];float score;struct stud *next;};/* ……………comment …………… */int n;struct stud create(){struct stud *head,*p1,*p2;n=0;p1=p2=(struct stud *)malloc(sizeof(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score); /* ……………comment …………… */head=NULL;while(p1!=0){n=n+1;if(n==1) head=p1;else p2->next=p1;p1=(struct stud *)malloc(size(struct stud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}二、程序填空题(20分)。
下面的程序是完成从键盘上输入若干行长度不一的字符串把其存到一个文件名为ttt.txt的磁盘文件上去,再从该文件中输出这些数据到屏幕上, 将其中的小写字母转换成大写字母。
然而,该程序是一个不完整的程序,请在下划线空白处将其补充完整,以便得到正确答案,但不得增删原语句。
试题二、程序填空题tk56.c程序用于计算4×5的整型数组中最大元素所在行和列的位置。
下面程序不完整,请将其补充完整,以便得到正确答案,注意:不得增行和删行,也不得修改程序的结构。
#include <stdio.h>void main(void){int a[4][5]={{4,8,9,10,12},{2,5,13,17,11},{81,76,34,57,33},{1,90,3,78,55}};int max , max_row , max_col;int i,j;max=a[0][0]; //max_row=0;max_col=0;for (i=0;i<4;i++)for (j=0;j<5;j++)if(max<a[i][j] )//{max=a[i][j] ;max_row = i ;max_col = j;}printf("%d %d",max_row,max_col);}试题一、程序改错题:gc56.c程序用于将字符串中的小写字母转换为大写字母,程序中有两处错误,请调试改正之,但不得增删语句.#include<stdio.h>void main(void){char s[255];int i;scanf("%s",s);for (i=0;s[i];i++)if(s[i]>='a' && s[i]<='z')s[i] = s[i] -'a' + 'A';printf("%s",s);}2.程序改错题gc57.c的功能是互换给定数组中的最大数和最小数。
如将下面8个数:5,3,1,4,2,8,9,6变成:5,3,9,4,2,8,1,6程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。
程序有二处错误,请改正。
注意:不得增行和删行,也不得修改程序的结构。
main(){int i;static int a[8]={5,3,1,4,2,8,9,6};void jhmaxmin();printf(" Original array: \n");for(i=0; i<8; i++)printf("%5d",a[i]);printf("\n");jhmaxmin(a,8);printf(" Array after swaping max and min: \n");for(i=0; i<8; i++)printf("%5d",a[i]);printf("\n");}void jhmaxmin(p,n)int *p, n;{int t, *max, *min, *end, *q; end=p+n;max=min=p;for(q=p+1; q<end; q++){ if(*q>*max) max=q;if(*q<*min) min=q;}t=*max; *max=*min; *min=t; }1.程序填空题tk57.c用来输出两整数M和N之间的所有素数(质数)。
所谓一个整数n为素数,是指n除了能被1和其本身n除尽外,不能被2到n-1中的任何整数除尽。
如7为素数,而9不是素数。
程序中,外循环变量i用于控制整数选择范围,内循环变量j用于判断某整数i是否为素数,若是,则输出该素数,且通过变量s来控制每行输出5个素数。
#define M 4#define N 30main(){int i, j, k, s=0;for(i=M; i<= N ; i++)//{ for(j=2; j< i ; j++)//if(i%j== 0 ) break;if(j>=i){ printf("%5d", i);s=s+1;if(s%5==0 ) printf("\n");}}printf("\n");}程序改错题:gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有三处错误代码,请改正.注意,不得改变程序结构。
#include <stdio.h>main(){int a[8],*p=a;int i,j;int tempmin,tempcode;printf("\n input the numbers:\n"); for (i=0;i<8;i++)scanf("%d",p+i);tempmin=*p;for (i=0;i<7;i++){for (j=i;j<8;j++)if (j==i||*(p+j)<tempmin){ tempmin=*(p+j);tempcode=j;};if (tempcode!=i){ *(p+tempcode)=*(p+i);*(p+i)=tempmin;}}for (i=0;i<8;i++)printf("%d, ",*(p+i));return(1);}2.程序改错题 ( 每错10分,共20分 )程序gc137.c中的sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。
例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。
请改正函数sub中的两个错误,使它能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得修改程序的结构。
#include "stdio.h"#include "conio.h"#include "string.h"void sub( char *s, char *t ){int i, d;d=strlen( s );for( i=0; i< d ; i++ )t[i]=s[d-1-i] ;for( i=0; i<d; i++ )t[d+i]=s[i] ;t[2*d]='\0' ; ;}main( ){char s[100], t[100];clrscr( ) ;printf( " \n Please enter string S : " ); scanf("%s" , s );sub(s,t) ;printf( " \n The result is : %s \n ", t );}1.程序填空题 ( 每空10分,共20分 )若一个整数x除了能被1和其本身x除尽外,不能被2到x-1中的任何整数除尽,则此数即为素数(或质数)。