2003年4月全国计算机等级考试二级C语言笔试试题(含参考答案)
2003年4月全国计算机等级考试二级C语言笔试试题(含参考答案) 一、选择题((1)~(40)每小题1分,(41)~(55)每小题2分,共60分) 下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写
在答题卡相应位置上,答在试卷上不得分。 (1) 用8位无符号二进制数能表示的最大十进制数为 A) 127 B) 128 C) 255 D) 256 (2) 在64位高档微机中,一个字长所占的二进制位数为 A) 8 B) 16 C) 32 D) 64 (3) 在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住 A) Alt键 B)Esc键 C)Shift键 D)Ctrl键 (4) 在Windows菜单中,暗淡(灰色)的命令项表示该命令 A) 暂时不能用 B) 正在执行 C) 包含下一层菜单 D) 包含对话框 (5) 在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为 A) TYPE B) TYPE/H C) TYPE/* D) TYPE/? (6) 下列选项中,能作为合法DOS文件名的是 A) ANP/A.DAT B) ABCCOM C) ECD.BASIC D) XY+Z.TXT (7) 下列叙述中正确的是 A) 在Windows环境下,最大化的窗口是不能移动的 B) 在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行 C) 在Windows环境下,只有最小化的窗口才能关闭 D) 在Windows环境下,不能关闭最大化的窗口 (8) 在Windows环境下,工具栏中的复制按钮是 A) 打印机图标 B) 剪刀标志 C) 复制标志 D) 粘贴标志 (9) 在Windows98环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按 A) Ctrl+PrintScreen键 B) Alt+PrintScree键 C) Shift+PrintScreen键 D) PrintScreen键 (10) 目前,计算机病毒扩散最快的途径是 A) 通过软件复制 B) 通过网络传播 C) 通过磁盘考贝 D) 运行游戏软件 (11) 以下叙述中正确的是 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚,具有其他语言的一切优点 (12) C语言中用于结构化程序设计的三种基本结构是 A) 顺序结构、选择结构、循环结构 B) if、switch、break C) for、while、do-while D) if、for、continue (13) 在一个C程序中 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 (14) 下列叙述中正确的是 A) C语言中既有逻辑类型也有集合类型 B) C语言中没有逻辑类型但有集合类型 C) C语言中有逻辑类型但没有集合类型 D) C语言中既没有逻辑类型也没有集合类型 (15) 下列关于C语言用户标识符的叙述中正确的是 用户标识符中可以出现在下划线和中划线(减号) 用户标识符中不可以出现中划线,但可以出现下划线 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头 (16) 若有以下程序段(n所赋的是八进制数) int m=32767,n=032767 printf("%d,%o/n",m,n); 执行后输出结果是 A) 32767,32767 B) 32767,032767 C) 32767,77777 D) 32767,077777 (17) 下列关于单目运算符++、--的叙述中正确的是 A) 它们的运算对象可以是任何变量和常量 B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D) 它们的运算对象可以是char型变量、int型变量和float型变量 (18) 若有以下程序段 int m=0xabc,n=0xabc; m-=n; printf("%X\n",m); 执行后输出结果是 A) 0X0 B) 0x0 C) 0 D) 0XABC (19) 有以下程序段 int m=0,n=0; char c='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:10A10,则输出结果是: A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0 (20) 有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执行后输出结果是 A) 011122 B) 012 C) 012020 D) 120 (21) 有以下程序 main() { int i=1,j=1,k=2; if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输出结果是 A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3 (22) 有以下程序 main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); else if((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2) } 执行后输出结果是 A) 2 B) 3 C) 4 D) 编译时有错,无结果 (23) 有以下程序 main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i];i++;} printf("%d\n",k); } 执行后输出结果是 A) 58 B) 56 C) 45 D) 24 (24) 有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s +=i; }while(i<7); printf("%d\n",s); } 执行后输出结果是 A) 16 B) 12 C) 28 D) 21 (25) 有以下程序 main() { int i=10,j=1; printf("%d,%d\n",i--,++j); } 执行后输出结果是 A) 9,2 B) 10,2 C) 9,1 D) 10,1 (26) 有以下程序 main() { char a,b,c,*d; a='\'; b='\xbc'; c='\0xab'; d="\017"; print("%c%c%c\n",a,b,c,*d); } 编译时出现错误,以下叙述中正确的是 A) 程序中只有a='\';语句不正确 B) b='\xbc';语句不正确 C) d="\0127";语句不正确 D) a='\';和c='\0xab';语句都不正确 (27) 有以下程序 int fl(int x,int y) { return x>y?x:y; } int f2(int x,int y) { return x>y?y:x; } main() { int a=4,b=3,c=5,d,e,f; d=f1(a,b); d=f1(d,c); e=f2(a,b); e=f2(e,c); f=a+b+c-d-e; printf("%d,%d,%d\n",d,f,e); } 执行后输出结果是 A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,4 (28) 有如下程序 void f(int x,int y) { int t; if(x} main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%d\n",a,b,c); } 执行后输出结果是 A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5 (29) 若有以下定义和语句 #include int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是 A) *q=0; B) w=p; C) *p=a; D) *p=*w; (30) 有以下程序 int *f(int *x,int *y) { if(*x<*y)
4月天下计算机等级考试二级C语言笔试试卷含参考答案
计算机二级考试c语言103套答案
计算机二级考试c语言103套答案1. 题目:以下哪个选项是C语言中合法的整型常量?A. 0x12B. 0x12.5C. 0x12GD. 0x12L答案:A2. 题目:在C语言中,以下哪个关键字用于声明一个变量?A. intB. floatC. doubleD. all of the above答案:D3. 题目:C语言中,以下哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A4. 题目:在C语言中,以下哪个函数用于计算一个数的平方根?A. sqrt()B. pow()C. log()D. exp()答案:A5. 题目:以下哪个选项是C语言中合法的数组声明?A. int arr[10];B. int arr[];C. int arr[10] = {1, 2, 3};D. all of the above答案:D6. 题目:在C语言中,以下哪个关键字用于循环结构?A. forB. whileC. do-whileD. all of the above答案:D7. 题目:C语言中,以下哪个函数用于字符串的复制?A. strcpy()B. strncpy()C. strcat()D. strncat()答案:A8. 题目:以下哪个选项是C语言中合法的函数声明?A. int func(int a, int b);B. int func();C. void func(int a, int b);D. all of the above答案:D9. 题目:在C语言中,以下哪个关键字用于定义一个指针?A. int*B. float*C. double*D. all of the above答案:D10. 题目:C语言中,以下哪个运算符用于比较两个数是否相等?A. ==B. !=C. >D. <答案:A。
全国计算机等级考试二级C语言上机考试试题详解
第四部分全国计算机等级考试二级C语言上机考试试题详解第7章全国计算机等级考试二级C语言上机考试试题第1套填空题:请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。
例如:当str[N]=“123 abcdef ABCDEF!”时,结果输出:“123ABCDEFABCDEF!”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>#include<stdlib.h>#include<conio.h>#define N 80main(){ int i;char str[N]="123abcdef ABCDEF!";char *pf=str;printf("***original string***\n");puts(str);【1】;while(*(pf+j)){ if(*(pf+j)>='a'&&*(pf+j)<='z'){ *(pf+j)= 【2】;j++;}else【3】;}printf("******new string******\n");puts(str);system("pause");}改错题:下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCⅡ值小或相等的字符依次存放到c数组中,形成一个新的字符串。
例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
计算机二级C上机考试题库及答案
计算机二级C上机考试题库及答案1. 题目一:编写一个程序,实现两个整数的加法运算。
要求:- 定义两个整数变量a和b。
- 编写一个函数add(),实现两个整数的加法运算。
- 在main函数中调用add()函数,并打印结果。
答案:```c#include <stdio.h>int add(int x, int y) {return x + y;}int main() {int a = 5, b = 10;printf("The sum of %d and %d is %d\n", a, b, add(a, b));return 0;}```2. 题目二:编写一个程序,实现字符串的反转。
要求:- 定义一个字符串变量str。
- 编写一个函数reverse(),实现字符串的反转。
- 在main函数中调用reverse()函数,并打印反转后的结果。
答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello World";reverse(str);printf("Reversed string: %s\n", str);return 0;}```3. 题目三:编写一个程序,实现计算数组中元素的平均值。
要求:- 定义一个整数数组arr。
- 编写一个函数average(),计算数组中元素的平均值。
- 在main函数中调用average()函数,并打印平均值。
全国计算机二级《C语言》操作试题
全国计算机二级《C语言》操作试题 全国计算机二级《C语言》操作试题 一、程序填空题 给定程序中,函数fun的功能是:计算形参X所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参Y所指数组中,在主函数中输出。 例如,有l0个正数:46、30、32、40、6、17、45、15、 48、26,其平均值为30.500000。 主函数中输出:46 32 40 45 48。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 试题程序: 二、程序修改题 下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的`值。 例如,若m=2000,则应输出o.000160。 请改正程序中的错误,使它能得出正确豹结果。 注意:部分源程序在文件blODll.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 三、程序设计题 已知学生豹记录由学号和学习成绩构成。N名学生的数据已a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首都,请完戒该函数。 注意:部分源程序在文件PROGl.C中。 请勿改动主函数nlaill和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: 参考答案及解析 一、程序填空题 【参考答案】 (1)0.0(2)X[i]/N(3)j++ 【解题思路】 填空1:通过上面的程序可以看出此空考的是给变量赋初值,av代表的是平均值,因此av的初值应该是0.0。 填空2:通过for循环可知,此空代表求平均值,因此应该填写X[il/N。 填空3:先把大于平均值的数放在形参y所指数组中,然后使下标值加l,因此此空应该填j++。 二、程序修改题 【参考答案】 (1)double fun(int m) (2)for(i=100;i<=m;i+=100) 【解题思路】 (1)题目要求在函数fun中求级数前Ill项和,可用循环语句,每次计算级数中的一项,然后累加。第一处错误在于定义fun(int m),由函数的返回值y可知此处应该定义为double fun(int m)。 (2)for(i=100,i<=m,i+=100)中是一个简单的语法错误。for循环语句的形式为for(表达式1;表达式2;表达式3),其表达式之间应以”;”相隔。 三、程序设计题 【参考答案】 【解题思路】 找出结构体数组元素中的最小值。先认为第1个值最小,即*s=a[o];,如果在循环的过程中发现比第l个值更小的,就将指针s指向该元素,直到找到最小元素。另外,本题还涉及结构体中的指向运算符,请考生注意。
全国计算机等级考试二级C语言公共基础知识(附例题)
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法.1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构.描述算法的工具通常有传统流程图、N—S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
全国计算机等级考试《二级C语言程序设计》历年真题精选及详解
全国计算机等级考试《二级C语言程序设计》历年真题精选及详解一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,按照题目上的内容进行答题。
作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。
选择题部分只能进入一次,退出后不能再次进入。
选择题部分不单独计时。
)1.下列叙述中正确的是()。
A.所有数据结构必须有根结点B.所有数据结构必须有终端结点(即叶子结点)C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D.没有根结点或没有叶子结点的数据结构一定是非线性结构【答案】D【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素”且惟一;②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”;④除第一个元素外,其他数据元素均有惟一的“前驱”。
所以没有根结点或没有叶子结点的数据结构一定是非线性结构。
AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。
答案选择D选项。
2.以下叙述中错误的是()。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言源程序经编译后生成后缀为.obj的目标程序【答案】A【解析】A项错误,注释语句不会被翻译成二进制的机器指令。
C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。
答案选择A选项。
3.C语言主要是借助以下()功能来实现程序模块化的。
A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型【答案】A【解析】C程序的模块化主要通过函数来实现。
2003年9月全国计算机等级考试二级C语言笔试试题及答案
(考试时间120分钟,满分100分)一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分)(1)在计算机中,一个字节所包含二进制位的个数是A.2B.4C.8D.16(2)在多媒体计算机中,CD-ROM属于A.存储媒体B.传输媒体C.表现媒体D.表示媒体(3)在DOS系统中,带有通配符的文件名*.*表示A.硬盘上的全部文件B.当前盘当前目录中的全部文件C.当前盘上的全部文件D.根目录中的全部文件(4)十六进制数100转换为十进制数为A.256B.512C.1024D.64(5)能将高级语言编写的源程序转换为目标程序的软件是A.汇编程序B.编辑程序C.解释程序D.编译程序(6)在Internet中,用于在计算机之间传输文件的协议是A.TELNETB.BBSC.FTPD.WWW(7)在Windows环境下,资源管理器左窗口中的某文件夹左边标有"+"标记表示A.该文件夹为空B.该文件夹中含有子文件夹C.该文件夹中只包含有可执行文件D.该文件夹中包含系统文件(8)在Windows环境下,下列叙述中正确的是A.在"开始"菜单中可以增加项目,也可以删除项目B.在"开始"菜单中不能增加项目,也不能删除项目C.在"开始"菜单中可以增加项目,但不能删除项目D.在"开始"菜单中不能增加项目,但可以删除项目(9)从Windows环境进入DOS方式后,返回Windows环境的命令为A.QUITB.WINC.EXITD.ESC(10)下列叙述中正确的是A.计算机病毒只感染可执行文件B.计算机病毒只感染文本文件C.计算机病毒只能通过软件复制的方式进行传播D.计算机病毒可以通过读写磁盘或网络等方式进行传播(11)以下叙述中正确的是A.C程序中注释部分可以出现在程序中任意合适的地方B.花括号"{"和"}"只能作为函数体的定界符C.构成C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语句之间的分隔符,不是语句的一部分(12)以下选项中可作为C语言合法整数的是A.10110BB.0386C.0XffaD.x2a2(13)以下不能定义为用户标识符的是A.scanfB.VoidC._3com_D.int(14)有以下程序main(){ int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf("%d %d %3.1f %3.1f\n",a,c,f,x);}程序运行后的输出结果是A.1 65 1 6.5B.1 65 1.5 6.5C.1 65 1.0 6.5D.2 65 1.5 6.5(15)以下选项中非法的表达式是A.0%26lt;=x%26lt;100B.i=j==0C.(char)(65+3)D.x+1=x+1(16)有以下程序main(){ int a=1,b=2,m=0,n=0,k;k=(n=b%26gt;a)||(m=a printf("%d,%d\n",k,m);}程序运行后的输出结果是A.0,0B.0,1C.1,0D.1,1(17)有定义语句:int x, y;,若要通过scanf("%d,%d",%26amp;x,%26amp;y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A.11 12%26lt;回车%26gt;B.11, 12%26lt;回车%26gt;C.11,12%26lt;回车%26gt;D.11,%26lt;回车%26gt;12%26lt;回车%26gt;(18)设有如下程序段:int x=2002, y=2003;printf("%d\n",(x,y));则以下叙述中正确的是A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出B.运行时产生出错信息C.输出值为2002D.输出值为2003(19)设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A.x=x*100+0.5/100.0;B.x=(x*100+0.5)/100.0;C.x=(int)(x*100+0.5)/100.0;D.x=(x/100+0.5)*100.0;(20)有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A. if (c else if (b else x=3; else x=1;C. if (a%26lt;3) x=3;D.if (a if (a%26lt;2) x=2; if (b if (a%26lt;1) x=1; if (c (21)有以下程序main(){ int s=0,a=1,n;scanf("%d",%26amp;n);do{ s+=1; a=a-2; }while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘给n输入的值是A.-1B.-3C.-5D.0(22)若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b%26lt;=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;(23)有以下程序main(){ int k=4,n=0;for( ; n { n++;if(n%3!=0) continue;k--; }printf("%d,%d\n",k,n);}程序运行后的输出结果是A.1,1B.2,2C.3,3D.4,4(24)要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10(资料来源:东方教育网 )main(){ int n; float s;s=1.0;for(n=10;n%26gt;1;n--)s=s+1/n;printf("%6.4f\n",s);}程序运行后输出结果错误,导致错误结果的程序行是A.s=1.0;B.for(n=10;n%26gt;1;n--)C.s=s+1/n;D.printf("%6.4f\n",s);(25)已定义ch为字符型变量,以下赋值语句中错误的是A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参(27)有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A.fun(int y,double m);B.k=fun(10,12.5);C.fun(x,n);D.void fun(n,x);(28)有以下程序void fun(char *a, char *b){ a=b; (*a)++; }main(){ char c1='A',c2='a',*p1,*p2;p1=%26amp;c1; p2=%26amp;c2; fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是A.AbB.aaC.AaD.Bb(29)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是A.int *i=NULL;B. float *f=NULL;scanf("%d",i); *f=10.5;C.char t='m', *c=%26amp;t;D.long *L;*c=%26amp;t; L='\0';(30)有以下程序#includemain(){ printf("%d\n",NULL); }程序运行后的输出结果是A.0B.1C.-1D.NULL没定义,出错(31)已定义c为字符型变量,则下列语句中正确的是A.c='97';B.c="97";C.c=97;D.c="a";(32)以下不能正确定义二维数组的选项是A.int a[2][2]={{1},{2}};B.int a[][2]={1,2,3,4};C.int a[2][2]={{1},2,3};D.int a[2][]={{1,2},{3,4}};(33)以下选项中不能正确把cl定义成结构体变量的是A.typedef structB.struct color cl{ int red; { int red;int green; int green;int blue; int blue;} COLOR; };COLOR cl;C.struct colorD.struct{ int red; { int red;int green; int green;int blue; int blue;} cl; } cl;(34)以下能正确定义一维数组的选项是A.int num[];B. #define N 100 int num[N];C.int num[0..100];D.int N=100;int num[N];(35)下列选项中正确的语句组是A.char s[8]; s={"Beijing"};B.char *s; s={"Beijing"};C.char s[8]; s="Beijing";D.char *s; s="Beijing";(36)已定义以下函数fun(int *p){ return *p; }该函数的返回值是A.不确定的值B.形参p中存放的值C.形参p所指存储单元中的值D.形参p的地址值(37)下列函数定义中,会出现编译错误的是A.max(int x,int y,int *z)B.int max(int x,y){ *z=x%26gt;y ? x:y; } { int z;z=x%26gt;y ? x:y;return z;}C.max(int x,int y)D.int max(int x,int y){ int z; { return(x%26gt;y?x:y); }z=x%26gt;y?x:y; return(z);}(38)有以下程序#include#define F(X,Y) (X)*(Y)main(){ int a=3, b=4;printf("%d\n", F(a++, b++));}程序运行后的输出结果是A.12B.15C.16D.20(39)有以下程序fun(int a, int b){ if(a%26gt;b) return(a);else return(b);}main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf("%d\n", r);}程序运行后的输出结果是A.3B.6C.8D.12(40)若有定义:int *p[3];,则以下叙述中正确的是A.定义了一个基类型为int的指针变量p,该变量具有三个指针B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C.定义了一个名为*p的整型数组,该数组含有三个int类型元素D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素(41)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址#include#includechar *scmp(char *s1, char *s2){ if(strcmp(s1,s2)%26lt;0)return(s1);else return(s2);}main(){ int i; char string[20], str[3][20];for(i=0;i%26lt;3;i++) gets(str[i]);strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为A.abcdB.abbaC.abcD.abca(42)有以下程序struct s{ int x,y; } data[2]={10,100,20,200};main(){ struct s *p=data;printf("%d\n",++(p-%26gt;x));}程序运行后的输出结果是A.10B.11C.20D.21(43)有以下程序段main(){ int a=5,*b,**c;c=%26amp;b; b=%26amp;a;……}程序在执行了c=%26amp;b;b=%26amp;a;语句后,表达式:**c的值是A.变量a的地址B.变量b中的值C.变量a中的值D.变量b的地址(44)有以下程序#includemain(){ char str[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序运行后的输出结果是A.0B.5C.7D.20(45)已定义以下函数fun(char *p2, char *p1){ while((*p2=*p1)!='\0'){ p1++;p2++; } }函数的功能是A.将p1所指字符串复制到p2所指内存空间B.将p1所指字符串的地址赋给指针p2C.对p1和p2两个指针所指字符串进行比较D.检查p1和p2两个指针所指字符串中是否有'\0'(46)有以下程序main(){ int x=3, y=2, z=1;printf("%d\n",x/y%26amp;~z);}程序运行后的输出结果是A.3B.2C.1D.0(47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A.0B.1C.-1D.一个非0值(48)下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件B.文件由二进制数据序列组成,C语言只能读写二进制文件C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(49)有以下程序main(){ int a[3][3],*p,i;p=%26amp;a[0][0];for(i=0;i%26lt;9;i++) p[i]=i+1;printf("%d \n",a[1][2]);}程序运行后的输出结果是A.3B.6C.9D.2(50)有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。
大一c语言的习题(1)
数,所以语句 s=s+1/n;中“1/n”的结果为 0,即执行完 for 循环语句后 s=1.0,结果错误,
表达式 s=s+1/n 的正确形式应为 s=s+1.0/n。
考点 4:字符常量和字符变量 ★★★★★
考点点拨:主要考查C语言中字符型变量的定义、字符常量的表示形式、转义字符及 字符数据在内存中的存储形式和使用方法、英文字母的ASCII值等,这部分内容是历年考试 出题的热点。
理论链接: C 语言中的实型变量分为单精度类型、双精度类型和长双精度类型,分别
用 C 语言保留关键字 float、double 和 long double 表示。在一般的系统中,一个 float 型数
据在内存中占 4 各字节,一个 double 型数据占 8 各字节, 一个 long double 型数据占 16 各
54
全国计算机等级考试真题(笔试+上机)详解与样题精选(二级 C 语言)
示字符常量的 ASCII 值。本题中选项 B 是将 65 赋值给 ch,表示字符 A;选项 C 中 NULL 是 C 语言中的符号常量,其值为 0;选项 D 是将一个转义字符赋值给 ch,该字符的 ASCII 值为 aa,其中 aa 是十六进制;选项 A 错误。
数值范围 –32768~32767 –32768~32767 –2147483648~2147483647 0~65535 0~65535 0~4294697295
C 语言中的整型常量有 3 种表示形式:十进制整型常量、八进制整型常量和十六进制 整型常量。八进制整型常量用数字 0 开头,十六进制整型常量用 0X 开头。整型常量又有 短整型、整型、长整型和无符号型之分,在一个整型常量后加上字母 L 或 l 表示 long 整型 常量。
全国计算机二级等级考试c语言机试答案(全)
全国计算机二级等级考试c语言机试答案(全)卷一【答案】(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n【答案】(1)将for(i=2;i<m;i++) 改为:for(i=2;i<=m;i++)(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);【答案】void fun(char *s,char t[]){int k,n=0;for(k=0;k<strlen(s);k++)if(k%2==0 && s[k]%2==0)t[n++]=s[k];t[n]= '\0';}卷二(1)a[0][i] (2)<=或< (3)x, y【答案】(1)将a=Null; 改为:a=NULL;(2)将if(r==p) 改为:if(*r==*p)【答案】float y1=0.0,y0;do{y0=y1;y1=cos(y0);}while(fabs(y0-y1)>=1e-6);return y1;卷三【答案】(1)feof(fp) (2)==sno (3)sizeof(STU) 【答案】(1)将long k;改为:long k=1;或long k;k=1; (2)将num\=10;改为:num/=10;int fun(int a[][N],int n){int j,k;for(j=0;j<N;j++)for(k=0;k<j+1;k++)a[j][k]*=n;}卷四【答案】(1)j=2 (2)i (3)j【答案】(1)将s[j]=s[i]; 改为:s[j++]=s[i]; 【答案】float fun(float *a,int n){float s=0.0;int I;for(i=0; i<n; i++)s+=a[i];return s/n;卷五【答案】(1)0 (2)n (3)(t*t)【答案】(1)将for(i=j+1;i<n-1;i++) 改为:for(i=j+1;i<n;i++)或for(i=j+1;i<=n-1;i++) (2)将t=i;改为:p=i;【答案】unsigned t,s=0,s1=1,p=0;t=m;while(t>10){if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;}return s;卷六【答案】(1)s[i] (2)k (3)'\0'【答案】(1)将i=1;改为:i=0;(2)将while(temp!=0 && m!=0 && n!=0)改为:while(temp!=0 || m!=0 || n!=0)【答案】float fun(int n){float s=0.0;int t=0, k;for(k=1; k<=n; k++){ t+=k; s+=1.0/t; }return s;}卷七【答案】(1)a (2) (3)score[i] 【答案】(1)将p=h; 改为:p= h->next; (2)将p=h->next; 改为:p=p->next; 【答案】int n,k,i;double sum=0.0;for(n=3;n<=m;n++){k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0) break;if(i>=k+1)sum+=sqrt(n);}return sum;卷八【答案】(1)double (2)f1 (3)f2【答案】(1)将for( i=0; i<sl; i ++) 改为:for( i=0; i<=sl; i ++)或for(i=0;i<sl+1;i++)(2)将t[sl]= '\0'; 改为:t[sl*2]='\0';或t[i*2]='\0'; 【答案】void fun(int m,int *a,int *n){int k;*n=0;for(k=0; k<=m; k++)if(k%7==0||k%11==0)a[(*n)++]=k;}卷九【答案】(1)0 (2)x*10 (3)n/10【答案】(1)将for(i=strlen(s);i;i--)改为:for(i=strlen(s)-1;i;i--)或:for(i=strlen(s)-1;i>0;i--)(2)将if(s[j]<s[j+1])改为:if(s[j]>s[j+1])double max;STR *q=a;max=a->s;do{if(q->s>max)max=q->s;q=q->next;}while(q!=0);return max;卷十【答案】(1)“rb”或“rb+”(2)>=s[j].sno或>s[j].sno(3)fwrite【答案】(1)将n=*P-'o'改为:n=*p-'0'(2)将n=n*7+*P-'o'改为:n=n*7+*p-'0';STREC fun(STREC*a,char*b) {STREC t={NULL,-1};int k;for(k=0; k<N; k++)if(!strcmp(a[k].num,b))return a[k];return t;}卷十一【答案】(1)i (2)ps[j] (3)tp 【答案】(1)将s=s+(m+1)/m;改为:s=s+(double)(m+1)/m;(2)将return s;改为:return t; 【答案】void fun(char *s,char t[]){int k,n=0;for(k=0; k<strlen(s); k++)if(k%2==1 && s[k]%2==1)t[n++]=s[k];t[n]='\0';}卷十二【答案】(1)NODE * 或struct node *(2)q!=NULL 或q != 0或q(3)r【答案】(1)将s[j]=s[i]; 改为:s[j++]=s[i]; (2)将s[i]='\0'; 改为:s[j]='\0';【答案】void fun(char *a){int n=0,m=strlen(a),j=0,k=0;while(a[j]=='*')/*统计有多少个前导'*'存入计数器n中*/{ n++;j++; }for(; j<m; j++)a[k++]=a[j];for(j=0; j<n; j++) /*串尾补n个'*'*/a[k++]=*';a[k]='\0'; /*添加字符串结束符*/ }卷十三【答案】(1)j (2)k 或=k-1 (3)p或(p)【答案】(1)将for(i=0;i<n;i++) 改为:for(i=0;i<2;i++)(2)将k=m; 改为:m=k;【答案】int i,n,j;char c;n=0;for(i=0;str[i]!='\0';i++)n++;if(n%2==0)j=n-1;elsej=n-2;c=str[j];for(i=j-2;i>=1;i=i-2)str[i+2]=str[i];str[1]=c;卷十四【答案】(1)a (2) (3)score[i] 【答案】(1)将int i=1;改为:int i=0;(2)将while(*a!=*b)改为:while(*a || *b) 【答案】void fun(int a,int b,long *c){*c=a/100;*c=*c*10+b/100;*c=*c*10+(a/10)%10;*c=*c*10+(b/10)%10;*c=*c*10+a%10;*c=*c*10+b%10;}卷十五【答案】(1)data=i(2)p->next=s(3)p->next【答案】(1)将void fun(long s, long t) 改为:void fun(long s, long *t)(2)将d = s/10; 改为:d = s%10;【答案】void fun(int a,int b,long *c){*c=a/10*1000+a%10*10+b/10*100+b%10; }卷十六【答案】(1)0(2)i++(3)(2.0*i)或(float)(2*i)或(double)(2*i)【答案】(1)将void fun(char str,char ch) 改为:void fun(char *str,char ch )(2)将if(*str==ch) 改为:if(*str!=ch) (3)将str[1]='0'; 改为:str[1]='\0'; 【答案】int i,j,k=0;double r=0.0;for(j=0;j<N;j++){r+=b[0][j];k++;}for(j=0;j<N;j++){r+=b[N-1][j];k++;}for(i=1;i<=N-2;i++){r+=b[i][0];k++;}for(i=1;i<=N-2;i++){r+=b[i][N-1];k++;}return r/=k;卷十七【答案】(1)*av (2)i (3)x[j] 或(x[j]) 【答案】(1)将long s=0,t=1; 改为:long s=0,t=0; (2)将t=t%10; 改为:t=t/10;【答案】void fun(char *tt,int pp[]){int n;for(n=0; n<26; n++)pp[n]=0;while(*tt!='\0'){if(*tt>='a' && *tt <='z')pp[*tt-'a']++;tt++;}}卷十八【答案】(1)20 或N (2)break (3)n 【答案】(1)把int r; 改为:double r;(2)将while(fabs(n-m)<0.001) 改为:while(fabs(n-m)>0.001)【答案】void fun( char *a,char *h,char *p ){char *q=h;int n=0;while(q<=p){ if(*q!='*') h[n++]=*q; q++; }while(*q){ h[n++]=*q; q++; }h[n]='\0';}卷十九【答案】(1)k (2)N-1 (3)temp【答案】(1)将for(i=1;i<y;i++) 改为:for(i=1;i<=y;i++)或for(i=1;i<y+1;i++)(2)将t=t/1000; 改为:t=t%1000;或t %=1000; 【答案】double fun(double x){int n=1;double s0,s1=1.0,t=1.0;do{s0=s1;t=t*(0.5-n+1)*x/n;s1=s0+t;n++;}while(fabs(s1-s0)>=0.000001);return s1;}卷二十【答案】(1)'0' 或48 (2)s++ (3)sum 或(sum) 【答案】(1)将for(k=2;k<m;k++)改为:for(k=2;k<=m;k++)或for(k=2;k<m+1;k++) (2)将c-=1/(k*k);改为:c-=1.0/(k*k);【答案】long fun(char *p){long t=0;int flag=1;if(*p=='-'){ flag=-1; p++; }while(*p){ t=t*10+(*p-'0'); p++; }return flag*t;}卷二十一【答案】(1)STUDENT (2)student[i].num (3)student[i]【答案】(1)将void fun(char*s,s1,s2,str)改为:void fun(char *s,char *s1,char *s2,char *str)(2)将while(str)改为:while(*str)【答案】void fun(char *s,char t[]){int k,n=0;for(k=0; k<strlen(s); k++)if(k%2!=0||s[k]%2!=1)t[n++]=s[k];t[n]='\0';}卷二十二【答案】(1)[M],或[10], (2)N或=N-1 (3)'\0' 【答案】(1)填sum=0;(2)将scanf("%d",a[i][j]); 改为:scanf("%d",&a[i][j]);【答案】int fun(int array[3][3]){int j,k,t;for(j=0;j<3;j++)for(k=0;k<j;k++){t=s[j][k];s[j][k]=s[k][j];s[k][j]=t;}}卷二十三【答案】(1)i=1 (2)&& (3)--j【答案】(1)将fun(int n) 改为:double fun(int n) (2)将c = a;a += b;b += c; 改为:c = a;a += b;b = c;【答案】void fun(int m,int k,int xx[]){int j,n=0;while(n<k){m++;for(j=2; j<m; j++)if(m%j==0) break;if(j>=m) xx[n++]=m;}}卷二十四【答案】(1)h->next(2)p==NULL 或p==0 或h->next==NULL (3)r【答案】(1)将if(P==n) return -1; 改为:if(p==n) return -1;(2)将a[i+1]=a[i]; 改为:a[i]=a[i+1];【答案】int fun(STREC *a,STREC *b){int j,n=0; double min=100.0;for(j=0;j<N;j++)if(min>a[j].s)min=a[j].s;for(j=0;j<N;j++)if(a[j].s==min)b[n++]=a[j];return n;}卷二十五【答案】(1)filename (2)SEEK_END或2 (3)&n 【答案】(1)将s=p; 改为:p=s;(2)将while(*p); 改为:while(*p++);【答案】double fun(STREC *h){double min=h->s;while(h!=NULL){if(min>h->s) min=h->s;h=h->next;}return min;}卷二十六【答案】(1)'0'或48(2)s++(3)ctod(a)+ctod(b)【答案】(1)将FU(m,n)(m/n) 改为:FU(m,n)((m)/(n)) (2)将Return(Value); 改为:return(value); 【答案】fun(char *s){int k=0,j=0,n=strlen(s);while(s[k]=='*')k++;for( ; k<n+1; k++)s[j++]=s[k];}卷二十七【答案】(1)k (2)N 或=N-1 (3)a[k][i] 【答案】(1)将void fun(int a) 改为:void fun(int a[])(2)将aa[j]=a[j-1]; 改为:a[j]=a[j-1]; 【答案】double t,s=1.0;int i,j;for(i=1;i<=m;i++){t=1.0;for(j=1;j<=i;j++)t*=j;s+=1.0/t;}return s;卷二十八【答案】(1)t, s (2)s[i] (3)'\0'、【答案】(1)将if(t=0) 改为:if(t==0)(2)将zero=count; 改为:*zero=count; 【答案】int i;double f=1.0,p=1.0;for(i=2;i<=m;i++){p+=pow(i,0.5);f+=p;}return f;卷二十九【答案】(1)n++ (2)0 (3)s++【答案】(1)将int i; 改为:int i,sl;(2)将t[i] = s[sl-i]; 改为:t[i] = s[sl-i-1];【答案】void fun(int a,int b,long *c){*c=a/10*100+a%10+b/10*1000+b%10*10; }卷三十【答案】(1)*s (2)1 (3)k[n]【答案】(1)将k++ 改为:k++;(2)将if(m = k ) 改为:if(m == k)【答案】int i,n=0;int g,b;for(i=0;i<len;i++){g=a[i]%10;b=a[i]/100;if(g==b)bb[n++]=a[i];}return n;卷三十一【答案】(1)N 或=N-1 (2)substr (3)0 【答案】(1)将num[i]=0; 改为:num[k]=0; (2)将switch(s) 改为:switch(*s)【答案】int fun(int a[M][N]){int k,s=0;for( k=0; k<N; k++ )s+=a[0][k]+a[M-1][k];for( k=1; k<M-1; k++ )s+=a[k][0]+a[k][N-1];return s;}卷三十二【答案】(1)->sno (2)->name (3)&t 【答案】(1)将for( i=strlen(t); i; i--) 改为:for(i=strlen(t)-1;i;i--)(2)将if(t[j]< t[j + 1]) 改为:if(t[j]>t[j + 1])【答案】void fun(char *ss){int k;for(k=1;k<strlen(ss);k+=2)if(ss[k]>='a'&&ss[k]<='z')ss[k]=ss[k]-'a'+'A';}卷三十三【答案】(1)struct student(2)n-1 或=n-2(3)a[i].name, a[j].name【答案】(1)将int j,c=0,float xa=0.0; 改为:int j,c=0; float xa=0.0;(2)将if(x[j]=> xa) 改为:if(x[j]>=xa) 【答案】float fun(int m,int n){float s=1.0;int k;for(k=n+1;k<=m;k++)s*=k;for(k=1;k<=(m-n);k++)s/=k;return s;}卷三十四【答案】(1)p->next(2)q!=NULL或q(3)p->next【答案】(1)将q=p+i 改为:q=p+i;(2)将While(q>p) 改为:while(q<p)【答案】int fun(STREC *a,STREC *b,int l,int h){int k,n=0;for(k=0;k<N;k++)if(a[k].s>=l&&a[k].s<=h)b[n++]=a[k];return n;}卷三十五【答案】(1)FILE * (2)fclose(fp)(3)fp 【答案】(1)将while(*s!='@') 改为:while(*s!='\0') (2)将(*s)++; 改为:s++【答案】void fun(int *w,int p,int n){int j,k,t=0;for(j=0;j<=p;j++){t=w[0];for(k=1;k<n;k++)w[k-1]=w[k];w[n-1]=t;}}卷三十六【答案】(1)flag=1 (2)j%i==0 (3)flag==1 【答案】(1)将t=x;x=y; 改为:t=*x;*x=y;(2)将return (y); 改为:return (t);【答案】int fun(char *s){int i,j=0;for(i=0;s[i]!='\0';i++)if(s[i]!=' '&&(s[i+1]==''||s[i+1]=='\0'))j++;return j;}卷三十七【答案】(1)&& (2)fputc(ch,fp1) (3)fclose(fp) 【答案】(1)将void fun(int a[],int m) 改为:int fun(int a[],int m)(2)将else if(m>=a[mid])改为:else if(m>a[mid])【答案】void fun(int *a,int *b){int i,j;for(j=0;j<M;j++)b[j]=0;for(i=0;i<N;i++)if(a[i]>=100) b[10]++;else b[a[i]/10]++;}卷三十八【答案】(1)xx[i]%10 (2)bb[n++]=xx[i] (3)n 【答案】(1)将fun( int **a, int m) 改为:void fun( int (*a)[M], int m)(2)将a[j][k]=k*j; 改为:a[j][k]=(k+1)*(j+1);【答案】int fun(int a[],int n){int i,j=1;for(i=1;i<n;i++)if(a[j-1]!=a[i])a[j++]=a[i];return j;}卷三十九【答案】(1)&n (2)i=1 (3)f*=i【答案】(1)将fun(int n) 改为:double fun(int n) (2)将return sum 改为:return sum ; 【答案】int j=1,i=0,k=0,*s=b;for(j=0;j<=y;j++)if(j%2!=0){s[i]=j;i++;}for(j=0;j<i;j++)if(y%s[j]==0){b[k]=s[j];k++;}*m=k;卷四十【答案】(1)sum=0 (2)sum+=n (3)ld 【答案】(1)将fun(char (*sq)[N]) 改为:char *fun(char (*sq)[M])(2)将return sq; 改为:return sp; 【答案】long fun(int n){int i;long s=0;for(i=2;i<n;i++)if(n%i==0) s+=i*i;return s;}卷四十一【答案】(1)i<n或i<=n-1(2)j<n-1或j<=n-2【答案】(1)将switch(g); 改为:switch(g)(2)将case 1;case 2: return 1;改为:case 1:case2:return 1;【答案】void fun(char *a,char *p){char *t=a;for(;t<=p;t++)if(*t!='*') *(a++)=*t;for(;*t!='\0';t++)*(a++)=*t;*a='\0'; /*在字符串尾加上结束标记符*/ }卷四十二【答案】(1)"%c",&str[i] (2)str[i]!='*'(3)"%c", str[j]【答案】(1)将fun(char *pstr[6]) 改为:void fun(char *pstr[6])(2)将if(strcmp(*(pstr+i),pstr+j)>0) 改为:if(strcmp(*(pstr+i),*(pstr+j))>0)(3)将*(pstr+i)=pstr+j; 改为:*(pstr+i)= *(pstr+j);【答案】double fun(STREC *a,STREC *b,int *n){int i,j=0;double av=0.0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;for(i=0;i<N;i++)if(a[i].s<av) b[j++]=a[i];*n=j;return av;}卷四十三【答案】【答案】【答案】(1)array (2)*(*(p+i)+j)【答案】(1)将while(i>j) 改为:while(i<j) (2)将*c=o; 改为:*c='\0';【答案】void fun(int a[3][3],int b[3][3]){int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];}卷四十四【答案】(1)str1[i]!=' ' (2)i++【答案】(1)将while((j>=0)||(ch>aa[j])) 改为:while((j>=0)&&(ch>aa[j]))(2)将aa[j]=ch; 改为:aa[j+1]=ch; 【答案】int n,m=0;for(n=0;n<NUM;n++)if(n!=flg){result[m]=orig[n];m++;}result[m]='\0';卷四十五【答案】(1)i==0||i==n-1||j==0||j==n-1或i==0||j==0||i==n-1||j==n-1或j==0||i==0||j==n-1||i==n-1(2)bb[i][j]=0【答案】(1)将if(i%k!=0) 改为:if(i%k==0)(2)将if(k<i) 改为:if(k>=i)【答案】fun(STU a[],STU *s){int i;*s=a[0];for(i=0;i<N;i++)/*找出成绩最高的学生记录*/ if(s->s<a[i].s)*s=a[i];}卷四十六【答案】(1)j>i (2)bb[j]=bb[j-1] (3)break 【答案】(1)将fun(int m) 改为:double fun(int m) (2)将for(i=100,i<=m,i+=100) 改为:for(i=100;i<=m;i+=100)【答案】void fun(int m,int *k,int xx[]){int i,j,n=0;for(i=2;i<m;i++){for(j=2;j<i;j++)if(i%j==0) break;if(j<i) xx[n++]=i;}*k=n;}卷四十七【答案】(1)p=str (2)p[i]++ (3)s[i]='\0'【答案】(1)将i=1; 改为:i=0;(2)将while(i<3||*p) 改为:while(i<3&&*p) (3)将b[k]= ' '; 改为:b[k++]=' ';【答案】int fun(STREC a[]){int i,j;STREC t;for(i=1;i<N;i++)for(j=0;j<N-1;j++)if(a[j].s<a[j+1].s){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }卷四十八【答案】(1)break (2)′\0′(3)*p++ 【答案】将int fun(int x, y) 改为:int fun(int x,int y)【答案】int fun(char *str, char *substr){int i,j=0;for(i=0;str[i+1]!='\0';i++)if(str[i]==substr[0]&&str[i+1]==substr[1])j++;return j;}卷四十九【答案】(1)strlen(str1)<strlen(str2) (2)*p2 (3)str1 【答案】(1)将fun(double a,double x0) 改为:double fun(double a,double x0)(2)将if(fabs(x1-x0)>0.00001) 改为:if(fabs(x1-x0)>=0.00001)【答案】int fun(int a[][N], int m){int i,j;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=a[i][j]*m;}卷五十【答案】(1)flag=1 (2)flag=0 (3)aa[k++]=i 【答案】(1)将return 1; 改为:return 3;(2)将else return 3; 改为:else return 1; 【答案】void fun(char *w,int m){int i,j;char t;for(i=1;i<=m;i++){t=w[0];for(j=1;w[j]!='\0';j++)w[j-1]=w[j];w[j-1]=t; /*将第1个字符放到最后一个字符中*/} }。
