四川省计算机二级C29次机试试题
四川省计算机二级c语言考试试题及答案及解析

四川省计算机二级c语言考试试题及答案及解析一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是()。
A. structB. intC. charD. float答案:B解析:在C语言中,定义变量时需要使用关键字,其中用于定义整型变量的关键字是int。
2. 下列哪个选项是合法的C语言标识符?()A. 2variableB. variable2C. _variableD. variable!答案:C解析:C语言中标识符可以由字母、数字、下划线组成,但不能以数字开头。
3. C语言中,用于表示逻辑“与”操作的运算符是()。
A. &&B. ||C. ==D. =答案:A解析:在C语言中,逻辑“与”操作符是&&,用于比较两个表达式是否都为真。
4. 下列哪个选项不是C语言中的控制语句?()A. ifB. switchC. forD. goto答案:D解析:goto语句虽然在C语言中存在,但它不是控制语句,而是一种跳转语句。
5. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A解析:struct关键字用于定义一个结构体类型。
6. 下列哪个选项是C语言中的预处理指令?()A. #includeB. #defineC. #ifD. All of the above答案:D解析:#include、#define和#if都是C语言中的预处理指令。
7. C语言中,用于表示逻辑“或”操作的运算符是()。
A. &&B. ||C. ==D. =答案:B解析:逻辑“或”操作符是||,用于比较两个表达式是否至少有一个为真。
8. C语言中,用于表示逻辑“非”操作的运算符是()。
A. !B. &&C. ||D. =答案:A解析:逻辑“非”操作符是!,用于取反一个表达式的逻辑值。
9. 在C语言中,用于定义一个数组的关键字是()。
四川省计算机二级试题26~28次

四川省普通高等学校计算机应用知识和能力第二十六次等级考试二级(C与C++语言) 笔试试卷时间: 2007年4月14 日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. Windows是多用户多任务操作系统。
( 1 )2. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。
( 2 )3. 在面向对象的软件开发方法中,类可以创建对象,类是对象的实例,对象是生成类的模板。
( 3 )4. 在计算机系统中,操作系统是处于裸机之上的第一层软件。
( 4 )5. 数据的存储结构与数据的处理效率无关。
( 5 )6. 提供没有错误的程序是提高软件的可维护性的基本措施。
( 6 )7. 中断控制方式适用于外设同CPU之间进行大量数据交换。
( 7 )8. 在软件工程中,结构化软件开发方法是一种自顶向下分阶段实现的软件开发方法。
( 8 )9. 进程把程序作为它的运行实体,没有程序也就没有进程。
( 9 )10.软件工程的目的是最终解决软件的生产工程化。
( 10 )二、选择题(每小题1分,共5分)1. 以下哪种测试方法不属于白盒测试技术(11 )。
11 (A) 基本路径测试(B) 边界值分析测试(C) 循环覆盖测试(D) 逻辑覆盖测试2. 若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是(12 )。
12 (A) 1,4,3,2 (B) 2,3,4,1(C) 3,1,4,2 (D) 3,4,2,13. 在多道程序设计系统中,处于后备状态的作业要经过(13 )调度后才能真正执行。
13 (A) 作业调度(B) 作业调度和设备调度(C) 进程调度(D) 作业调度和进程调度4. 检查软件产品是否符合需求定义的过程称为(14 )。
14 (A) 确认测试(B) 集成测试(C) 验证测试(D) 验收测试5. 数据字典是结构化软件开发方法中用于描述(15 )工作阶段的工具。
15 (A) 需求分析(B) 程序编码(C) 详细设计(D) 可行性分析1. 在下列枚举定义中,(16 )是正确的。
四川计算机二级C语言机试真题含答案(19次至30次)免费下载[1]
![四川计算机二级C语言机试真题含答案(19次至30次)免费下载[1]](https://img.taocdn.com/s3/m/2396204d852458fb770b5640.png)
19次机试试题(第一套)(60分钟)一、程序调试题(文件名testl-1.c)(40分)磁盘上有testl-l.c,程序中函数fun的功能是:从低位开始取出正长整型变量s中奇数位上的数,依次构成一个新数放在t中。
例如,若s中的数为:98765,则t中的数为975。
请改正程序中的错误,使程序能得出正确的结果。
注意:不能改动程序的结构,不能添加和删除行,只能修改行。
不要改动main函数。
# include <stdio.h>void fun(long s,long t){ long s1=10;*t=s%10;while(s>o);{ s=s/100;t=s%10*s1+t;s1=s1*100;}}void main(){ long s,t;printf("\nPlease enter integer s:");scanf("%ld",&s);if(s>0){ fun(s,&t);printf("The result is :%ld\n",t);}else printf("s value error.\n");}二、编写程序(程序文件名为test1-2.c)(60分)有n个人围成一圈,顺序排号,从第一个人开始报数(从1到5报数),凡报到5的人退出圈子,问最后留下的是原来第几号的那位。
人数不超过50。
要求:将结果显示在屏幕上,同时写到文件testl-2.dat中。
(第二套)(60分钟)一、程序调试题(文件名test2-1.c)(40分)磁盘上已有一文件test2-l.c,其功能是将字符串s中最后一次出现的子字符串tl替换成字符串t2,形成新串放在w所指的数组中。
要求tl和t2所指的字符串的长度相同。
例如:当s所指字符串的内容为"abzyxeruzyx123zHm",t1中的内容为"zyx",t2中的内容为"999"时,则w所指数组中的内容应为"abzyxerzyxl23999m"。
四川省计算机二级c语言笔试试卷及参考答案(34-28次)

四川省普通高等学校计算机应用知识和能力第三十四次等级考试二级(C与C++语言) 笔试试卷时间: 2011年4月16 日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 作业与进程的主要区别是前者由用户提交,后者是由系统自动生成。
( 1 )2. 从循环链表中任意一个结点出发不能访问到整个链表。
( 2)3. 如果分时操作系统的时间片一定,那么用户数越少,则响应时间越长。
( 3)4. 队列在操作系统的各种资源请求排队及数据缓冲区管理中广泛使用。
( 4)5. 死锁产生的根本原因是操作系统能够提供的资源比请求该资源的进程数少。
( 5)6. 虚拟设备技术能将独占设备转换为可共享的设备,提高资源利用率。
( 6 )7. 链栈与顺序栈相比,有一个明显的优点是通常不会出现栈满的情况。
( 7 )8. 软件维护是长期的过程,交付使用的软件仍然需要排错、修改和扩充。
( 8 )9. 黑盒测试要求测试人员根据程序内部逻辑结构设计或选择测试用例。
( 9 )10.软件设计时,应力求增加模块间的耦合,减少模块的内聚。
( 10 )二、选择题(每小题1分,共5分)1. 设已将元素a1,a2,a3依次入栈,元素a4正等待进栈。
那么下列4个序列中不可能出现的出栈序列是(11 )。
11 (A)a3 a1 a4 a2 (B) a3 a2 a4 a1 (C) a3 a4 a2 a1 (D) a4 a3 a2 a12. 以下哪一个不是操作系统的特征(12 )。
12 (A) 并发(B) 分解(C) 共享(D) 虚拟3. 下列的进程状态变化中,(13 )变化是不可能发生的。
13 (A) 运行→就绪(B) 运行→等待(C) 等待→运行(D) 等待→就绪4. 很好地解决了碎片问题的存储管理方法是(14 )。
14 (A) 页式存储管理(B) 段式存储管理(C) 可变分区管理(D) 多重分区管理5. 作业从进入后备队列到被调度程序选中的时间间隔称为(15 )。
四川计算机二级试题及答案

四川计算机二级试题及答案本文介绍了四川计算机二级试题以及相应的答案。
以下是各个试题及其答案的详细解析:试题一:计算机网络1. 在计算机网络中,IP地址的作用是什么?答案:IP地址用于唯一标识计算机或其他网络设备在网络中的位置,使其能够相互通信和交换数据。
2. 请简要解释TCP/IP协议族的概念。
答案:TCP/IP协议族是一系列互联网通信协议的集合,由网络层的IP协议和传输层的TCP和UDP协议组成,用于保证数据在网络中的可靠传输。
3. 请列举一些常见的局域网通信协议。
答案:常见的局域网通信协议有以太网协议(Ethernet)、Wi-Fi协议、Token Ring协议等。
试题二:数据库管理1. 数据库的主要作用是什么?答案:数据库用于存储和管理大量结构化数据,并提供高效的数据访问和查询。
2. 请解释SQL语句中的SELECT、FROM和WHERE关键字的作用。
答案:SELECT关键字用于选择需要查询的字段或计算的结果;FROM关键字指定查询的数据表;WHERE关键字用于设置查询的条件。
3. 请简要解释关系型数据库和非关系型数据库的区别。
答案:关系型数据库是基于关系模型的数据库,使用表格来存储和组织数据,具备数据一致性和完整性;非关系型数据库以键值对的形式存储数据,具有高扩展性和灵活性。
试题三:操作系统1. 什么是进程和线程?答案:进程是操作系统进行资源分配和调度的基本单位,线程是进程中一个可独立运行的子任务,多个线程共享进程的资源。
2. 请解释操作系统的内存管理和文件管理功能。
答案:内存管理功能用于分配和回收内存资源,确保进程能够顺利执行;文件管理功能用于管理磁盘上的文件,包括文件的创建、读取、写入和删除等操作。
3. 请解释死锁的概念。
答案:死锁是指两个或多个进程因为互相等待对方释放资源而无法继续执行的状态。
试题四:程序设计1. C语言中,什么是指针?答案:指针是一个变量,用于存储一个变量的地址,通过指针可以间接访问和修改变量的值。
四川省计算机二级考试历年真题上机部份答案!

第三部分:笔试、机试答案笔试真题答案▶▶真题一第十九次等级考试第一部分软件技术基础一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1~10:AAABA、BBAAB二、单项选择题:(每小题1分,共5分)1~5 :CBDDA第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、B2、A3、D4、D5、A6、C7、D8、B9、A 10、B二、读程序题(每个选择3分,共45分)1、(1)D (2)B2、(1)C (2)D3、(1)A(2)D4、(1)C (2)C5、 B6、(1)C (2)D7、(1)B (2)C 8、B 9、D三、程序填空题(每空2分,共30分)1、①TotalSum(a,5) ②Total ③sum+=array[i]2、①ch=='1' ②power(2,i) ③val=val*x3、①s+n-1 ②*p1!= '\0' ③p2--4、①&num[i][j] ②num[i][j]!=num[j][i] ③flag==15、①while(!feof(fp) ) ②if(strcmp(str,string)==0) ③fopen(argv[1],"r")▶▶真题二第二十次等级考试第一部分软件技术基础一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1~10:ABABB ABABB二、单项选择题:(每小题1分,共5分)1~5 :DACDC第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、A2、B3、C4、C5、A6、D7、A8、C9、C 10、D二、读程序题(每个选择3分,共45分)1、(1)B (2)D2、(1)A(2)C3、(1)C (2)A(3)D4、(1)A(2)D5、 D6、(1)C (2)B7、(1)A(2)B 8、 B三、程序填空题(每空2分,共30分)1、①num=0 ②i < len-1 ③str++2、①symm(m)&&symm(m*m)&&symm(m*m*m)②i!=0 ③m=m*10+i%103、①head ②p->data ③p->next4、①(fp=fopen("data.txt", "r"))==NULL②ch=fgetc(fp) ③ch-'A'5、①while(*s++=*t++ ) ②*t='\0' ③else p=NULL▶▶真题三第二十一次等级考试第一部分软件技术基础一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1~10:BBABB ABBAB二、单项选择题:(每小题1分,共5分)1~5 :CCDDB第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、C2、B3、B4、B5、C6、A7、A8、C9、D 10、D二、读程序题(每个选择3分,共45分)1、D2、A3、A4、B5、B6、C7 、(1)C (2)B 8、(1)A(2)B 9、(1)C (2)D10、(1)D (2)A(3)D三、程序填空题(每空2分,共30分)1、①struct student *next ②p2->next=p1 ③p=p->next2、①q=p ②p>str ③*p=max3、①aver+=score[i] ②below[k]=score[i] ③fun(score,9,below)4、①i==j ②j=2 ③j>=05、①"wb" ②&em ③ 1▶▶真题四第二十二次等级考试第一部分软件技术基础一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1~10:AABBA BBBAA二、单项选择题:(每小题1分,共5分)1~5 :DCDCA第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、B2、A3、B4、A5、D6、C7、D8、C9、D 10、C二、读程序题(每个选择3分,共45分)1、D2、(1)A(2)C3、(1)A(2)D4、C5、A6、B7、B 8、(1)D (2)A9、(1)C (2)B10、(1)B (2)D三、程序填空题(每空2分,共30分)1、①p[i]>p[j] ②fscanf(fp,"%d",&a[i] ) ③sort(a,10)2、①func(n) ②long m ③func(m/10)3、①(bott+top)/2 ②top=mid-1 ③bott>top4、①str1[i]!= '\0'&&str2[i]!= '\0'②strlen(str1)>strlen(str2) ③strcat(str3,p2+i )5、①k>0 ②k/10 ③continue▶▶真题五第二十三次等级考试第一部分软件技术基础一、是非判断题(每小题1分,共10分)1~10:AABAB ABBBB二、选择题(每小题1分,共5分)1~5 :CDADA第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、B2、A3、A4、D5、B6、A7、C8、A/B9、D 10、C二、读程序回答问题(每个选择3分,共45分)1、B2、A3、D4、B B5、D A6、B A7、D8、C C9、A C 10、C三、程序填空( 每空2分,共30分)1、①n%base ②c[i] ③b[d]2、①j/10 ②ch[0]==ch[4] && ch[1]==ch[3] ③i3、①i%3==0&&i%7!=0 ②p[num++]=i ③fun ( M,a,&n )4、①s,t ②*(p1+i)==*p2 ③p1+i ,p1+i+15、①fopen ("stu.txt","r+" ) ②fp,"%f",&y ③fprintf ( fp,"%f",x )▶▶真题六第二十四次等级考试第一部分软件技术基础一、是非判断题(每小题1分,共10分)1~10:BABAB BABAB二、选择题(每小题1分,共5分)1~5 :BDBDB第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、C2、B3、A4、A5、D6、C7、C8、B9、D 10、B二、读程序回答问题(每个选择3分,共45分)1、D2、B D3、A4、A B5、A6、C7、C D8、D B9、C 10、C B三、程序填空( 每空2分,共30分)1、①int *p 或int p[] ②p[j+1]=p[j] ③insert(a,wz,x)2、①int i ②i<=y ③return z3、①x>=0 ②x<min ③&x4、①i-1 ②a[j+1]=a[j] ③a[j+1]=t5、①FILE *f ②sizeof(stract rec) ③r.num, r.total▶▶真题七第二十五次等级考试第一部分软件技术基础一、是非判断题(每小题1分,共10分)1~10:BAAAB ABAAB二、选择题(每小题1分,共5分)1~5 :ADDAC第二部分 C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、A2、D3、B4、C5、B6、A7、D8、B9、D 10、A二、读程序回答问题(每个选择3分,共45分)1、C2、A3、B C4、A C5、D D6、A C7、A D8、B D9、B三、程序填空( 每空2分,共30分 )1、① a=a*x ② b=b*i ③ s=sum(x,n)2、① s<t ② s++ ③ t--3、① filename ② c-…a‟③ ch+i4、① *max=i ② *min=i ③ fun(a,10,&max,&min)5、① c[k]=a[i++] ② c[k]=b[j++] ③ *(b+j)!=‟\0‟▶▶真题八第二十六次等级考试第一部分软件技术基础一、是非判断题(每小题1分,共10分)1~10:BABAB BBABB二、选择题(每小题1分,共5分)1~5 :BCCCA第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、A2、B3、C4、B5、D6、C7、A8、D9、C 10、B二、读程序回答问题(每个选择3分,共45分)1、A C2、D3、B4、A B5、A6、B C7、D C8、D9、A D 10、B三、程序填空( 每空2分,共30分)1、①char ch ②“r” ③ch2、①p=i ②i>=p ③a[p]=x3、①word++ ②max<word ③word=04、①a[k][i] ②*sum ③x,&s5、①a[k] ②a[k] ③“%4\n”▶▶真题九第二十七次等级考试第一部分软件技术基础一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1~10:AAAAA ABBBA二、单项选择题:(每小题1分,共5分)1~5 :ADBCA第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、A2、B3、D4、D5、C6、C7、B8、D9、A 10、D二、读程序题(每个选择3分,共45分)1、 B2、 A3、 A4、C5、 C6、 B7、 D8、 D A B9、B D 10、C A11、C三、程序填空题(每空2分,共30分)1、①char m ②i<=j ③str[j-1]2、①argv[1] ②ch=fgetc(fp2) ③fputc(ch,fp1)3、①i+2 ②a[j]!=0&&a[i]!=0&&a[j]%a[i]==0 ③count%10==04、①-sign ②num* ③%ld5、①i=0 ②s[i]!=‟\0‟③i%2==0▶▶真题十第二十八次等级考试第一部分软件技术基础一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1~10:AABAB AABBB二、单项选择题:(每小题1分,共5分)1~5 :DBAAC第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、D2、B3、A4、C5、B6、D7、C8、A9、B 10、D二、读程序题(每个选择3分,共45分)1、B2、A C3、D4、A5、 B6、A7、A C8、D9、B 10、B C11、C 12、D三、程序填空题(每空2分,共30分)1、①*(s+i)或*(s+i)!='\0' ②return cnt; ③fun(str,ch)2、①-1 ②(2*i+1) ③*s=t;3、①b[i]=0 ②b[i]+ ③x[i][j]4、①i++ ②line=j ③fclose(fp)5、①k++ ② 2 ③k-1▶▶真题十一第二十九次等级考试第一部分软件技术基础一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1~10:BAAAB ABABA二、单项选择题:(每小题1分,共5分)1~5 :AABDC第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、C2、B3、A4、D5、B6、C7、B8、D9、A 10、D二、读程序题(每个选择3分,共45分)1、(1)D (2)C2、(1)B (2)A3、(1)C (2)D4、A5、 B6、(1)D (2)C7、C 8、(1)B (2)C 9、B 10、A三、程序填空题(每空2分,共30分)1、①a[r][c] ②*row=r ③return a[r][c]2、①s+x/y ②x ③x+y3、①“score.dat” ②scanf(“%f”,&score) ③fclose(fp)4、①char *sp ②strlen(sp) < strlen(sq[i]) ③fun(str)5、①n=0 ②a[j]=0 ③count<25▶▶真题十二第三十次等级考试第一部分软件技术基础一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)1~10:二、单项选择题:(每小题1分,共5分)1~5 :第二部分C与C++语言程序设计一、单项选择题(每小题1分,共10分)1、D2、C3、B4、B5、A6、D7、B8、A9、D 10、C二、读程序题(每个选择3分,共45分)1、A C2、C A3、B B4、D B5、D B6、B7、A A8、C C三、程序填空题(每空2分,共30分)1、①n%base ②i>=0 ③a[d]2、①*d ②word ③result3、①3 ②"r" ③fgetc(fp1)4、①struct p t[100] ②&t[i].code ③t[i].code5、①n%i ②return 1 ③fun ( a[i] )▶▶真题十三第三十一次等级考试第一部分软件技术基础一、是非判断题(每小题1分,共10分)1~10:ABABB ABBAA二、选择题(每小题1分,共5分)1~5 :CABDA第二部分 C与C++语言程序设计一、单项选择题 (每小题1分,共10分)1、A2、D3、B4、B5、D6、D7、D8、C9、B 10、B二、读程序题(每个选择3分,共45分)1、D C2、D3、D4、B5、D6、C A7、C B8、D A9、D C 10、C三、程序填空题(每空2分,共30分)1、① i ② w ③"\n"2、① 5 ② m=m*10+t%10 ③ t=t/103、① i+=3 ② j+=3 ③ a[i]>a[j]4、① int a[] ② a[i]%j ③ a[k]5、① i ② t*k ③ -k机试真题答案▶▶真题一一、程序调试题(文件名为test1-1.c)( 40 分)#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 80void main(){ char str1[N],str2[N];int i,j,locat[10];int fun(char *,char *,int *);FILE *fp;if((fp=fopen("test1-1.dat","r"))=NULL) /* 改为:== */{ printf("Cannot open the file.\n");exit(0);}fgets(str1,fp); /* 改为:str1,N-1,fp */fgets(str2,N-1,fp);printf("str1:%s\nstr2:%s\n",str1,str2);fclose(fp);fun(str1,str2,locat);/* 改为:i=fun(str1,str2,locat); */ printf("arisen times: %d\n,start place:",i);for(j=0;j<i;j++)printf("%d, ",locat[j]);printf("\n");}int fun(char *p,char *q,int locat[]){ int len,i=0,posit=0;char *str;str=q;len=strlen(q);do{ if(*p=*q) /* 改为:*p != *q */{ p++;posit++;}else{while((*q!='\0')||(*q==*p)) /* 改为:&& */{ q++;p++;posit++;}if(*q=='\0'){locat[i]=posit-len;i++;}}q=str;}while(*p!='\0');return i;}评分标准:每改对一处得8分二、编程题(程序文件取名为test1-2.c)(60分)评分标准:1.fun函数编写40分:2. main函数编写20分:1)函数定义、形参书写正确(10分) 1)正确定义变量,并能正确的输出(10分) 2)算法正确(20分) 2)能正确调用fun函数(10分)3)返回值正确(10分)参考程序:# include <stdio.h>int fun(int *a){int i,j=0,qw,bw,sw,gw,s,t;for(i=1000;i<=9999;i++){qw=i/1000;bw=i/100%10;sw=i/10%10;gw=i%10;s=qw*10+sw;t=bw*10+gw;if( (s==5*t) &&(bw!=0) ){a[j]=i;j++;}}return j;}void main(){int a[100],i,j;j=fun(a);for(i=0;i<j;i++){printf("%6d",a[i]);if((i+1)%5==0)printf("\n");}}▶▶真题二一、程序调试题(文件名为test2-1.c)( 40 分)#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 5int fun(char s) /* 改为:*s */{ int i,j;j=strlen(s);for(i=0,j--;i<j;i++,j++) /* 改为:j--*/if(s[i]=s[j]) return 0; /* 改为:!= */return 1;}void main( ){ char s[20];FILE *fp;int i=0,j=0;if((*fp=fopen("test2-1.dat","r"))==NULL) /* 改为:fp */{ printf("Cannot open the file.\n");exit(0);}for(i=0;i<N;i++){ if(fun()) /* 改为:fun(s) */{printf("%s\n",s);j++;}}printf("\nnumber=%d\n",j);fclose(fp);}评分标准:每改对一处得8分二、编程题(程序文件取名为test2-2.c)(60分)评分标准:1.fun函数编写30分:2. main函数编写30分:1)函数定义、形参书写正确(10分) 1)数组定义及初始化正确(10分) 2)算法正确(20分) 2)能正确调用fun函数(5分)3)能正确输出(15分) 参考程序:# include <stdio.h># define N 4void fun(int a[][N]){int i,j;for(i=0;i<N;i++)for(j=0;j<i;j++)if(a[i][j]>a[j][i])a[j][i]=a[i][j];}void main(){int d[N][N]={{0,1,2,3},{7,6,4,5},{11,16,9,10},{15,22,33,8}};int i,j;for(i=0;i<N;i++){ for(j=0;j<N;j++)printf("%6d",d[i][j]);printf("\n");}fun(d);for(i=0;i<N;i++){ printf("\n");for(j=0;j<N;j++)if(j>=i)printf("%6d",d[i][j]);elseprintf("%6c",' ');}}▶▶真题三一、程序调试题(文件名为test3-1.c)( 40 分)#define N 20#include <stdlib.h>#include <stdio.h>void fun(int *a) /* 改为:int */{ int i,cnt=0;for(i=0;i<N;i++)if(a[i]>0) cnt++; /* 改为:<*/return cnt;}void main( ){ FILE *fp;int a[],i,cnt; /* 改为:a[N] */if((fp=fopen("test3-1.dat","r"))==NULL){ printf("Cannot open the file.\n");exit(0);}for(i=0;i<N;i++)fscanf(fp,"%d",a[i]); /* 改为:a+i */fclose(fp);fun(a); /* 改为:cnt=fun(a) */printf("positive = %d\n",N-cnt);printf("negative = %d\n",cnt);}评分标准:每改对一处得8分二、编程题(程序文件取名为test3-2.c)(60分)评分标准:1.fun函数编写40分:2.main函数编写20分:1) 函数定义、形参书写正确10分1) 变量定义及输入正确10分2) 算法正确30分2) 能正确调用fun函数5分3) 输出结果正确5分参考程序:# define N 10# include <stdio.h>void fun(int a[],int where,int amount){int *p1,*p2,temp;p1=&a[where-1];p2=&a[where-2+amount];while( p1 < &a[where-1]+amount/2 ){temp=*p1;*p1=*p2;*p2=temp;p1++;p2--;}}void main(){int num[N],where,amount,i;printf("Input 10 number:\n");for(i=0;i<N;i++)scanf("%d",&num[i]);printf("\n");printf("How many numbers do you want to sort:");scanf("%d",&amount);printf("\nWhere do you want to start:");scanf("%d",&where);printf("\n");fun(num,where,amount);printf("\nresorted array as follow:\n");for(i=0;i<N;i++)printf("%d,",num[i]);printf("\n");}▶▶真题四一、程序调试题(文件名为test4-1.c)( 40 分)#define N 20#include <stdlib.h>#include <stdio.h>int fun(int *a,int *even,int *odd) /* 改为:void*/{int i,cnt=0;for(i=0;i<N;i++)if(a[j]%2==0) /* 改为:a[i]*/*even++; /* 改为:(*even)*/else(*odd)++;}void main( ){FILE *fp;int a[N],i,cnt,even=0,odd=0;if((fp=fopen("test4-1.dat","r"))==NULL){printf("Cannot open the file.\n");exit(0);}for(i=0;i<N;i++)fscanf("%d",a+i); /* 改为:fp,"%d",a+i */fclose(fp);fun(a,&even,odd); /* 改为:&odd */printf("even = %d\n",even);printf("odd = %d\n",odd);}评分标准:每改对一处得8分二、编程题(程序文件取名为test4-2.c)(60分)评分标准:1.fun函数编写40分:2.main函数编写20分:1) 函数定义、形参书写正确10分1) 变量定义及输入正确10分2) 算法正确30分2) 能正确调用fun函数5分3) 输出结果正确5分参考程序:# include <stdio.h># define N 5void main(){int i,a[N],b[N],cnt=0;int fun(int a[],int b[]);printf("Enter %d number: ",N);for(i=0;i<N;i++)scanf("%d",&a[i]);cnt=fun(a,b);printf("cnt=%d\n",cnt);for(i=0;i<cnt;i++)printf("%6d",b[i]);}int fun(int a[],int b[]){int bb[4],cnt=0,i,j,k,flag;for(i=0;i<N;i++){bb[0]=a[i]/1000;bb[1]=a[i]/100%10;bb[2]=a[i]/10%10;bb[3]=a[i]%10;for(j=0;j<4;j++){if(bb[j]%2==0)flag=1;else{flag=0;break;}}if(flag==1)b[cnt++]=a[i];}return cnt;}▶▶真题五一、程序调试题(文件名为test5-1.c)( 40 分)#define N 80#include <stdlib.h>#include <stdio.h>#include <string.h>void fun(char str[],char *cap,char *lower){ int i=0,j=0,k=0;while(str[j]!='\0') /* 改为:str[i] */{ if(str[i]>='a'&str[i]<='z') /* 改为:&& */lower[j]=str[i]; /* 改为:j++ */else if(str[i]>='A'&&str[i]<='Z')cap[k++]=str[i];i++;}lower[j]='\0';cap[k]='\0';}void main( ){ FILE *fp;int str[N],cap[N],lower[N];if((fp=fopen("test5-1.dat","r"))==NULL){ printf("Cannot open the file.\n");exit(0);}fgets(str,0,fp); /* 改为:N */fclose(fp);fun(str,cap); /* 改为:str,cap,lower */printf(" %d capitalization : %s\n",strlen(cap),cap);printf(" %d lowercase : %s\n",strlen(lower),lower);}评分标准:每改对一处得8分二、编程题(程序文件取名为test5-2.c)(60分)评分标准:1.fun函数编写40分:2.main函数编写20分:1) 函数定义、形参书写正确10分1) 变量定义及输入正确10分2) 算法正确20分2) 能正确调用fun函数5分3) 返回正确10分3)输出结果正确5分参考程序:# include <stdio.h># define M 3# define N 4void main(){int matrix[3][4];int i,j,n;int fun(int a[M][N]);printf("Please input the elements of the matrix(3*4) row by row :\n");for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%d",&matrix[i][j]);n=fun(matrix);printf("result=%d\n", n);}int fun(int a[][N]){int i,j,max[M],min;for(i=0;i<M;i++){max[i]=a[i][0];for(j=1;j<N;j++)if(max[i]<a[i][j])max[i]=a[i][j];}min=max[0];for(i=1;i<M;i++)if(min>max[i])min=max[i];return(min);}▶▶真题六一、程序调试题(文件名为test6-1.c)( 40 分)#define N 10void printf(int n,int fac[],int x) /* 改为:myprintf */ {int j;printf("%3d its factors: ", x);for(j=0;j<n;j++)printf("%d ", fac[j]);printf("\n");}void find( int a[] , int fac[] ){int i, count,s,j;for(i=0;i<N;i++){count=0;for(j=0;j<a[i];j++) /* 改为:j=1 */if(a[i]%j==0)fac[count++]=j;s=0;for(j=0;j<count;j++)s=fac[j]; /* 改为:+= */if(s==a[i])myprintf(count,fac,s);}}void main( ){int i,a[N],fac[N];FILE *fp;fp=fopen("test6-1.dat","r");if(fp=NULL) /* 改为:== */{printf("Can not open file!\n");exit(0);}for(i=0;i<N;i++)fscanf(fp,"%d",&a[i]);fclose(fp);find(a);}评分标准:每改对一处得8分二、编程题(程序文件取名为test6-2.c)(60分)评分标准:1.fun函数编写40分:2.main函数编写20分:1) 函数定义、形参书写正确10分1) 变量定义及输入输出正确15分2) 算法正确20分2) 能正确调用fun函数5分3) 返回正确10分参考程序:# include <stdio.h># define N 10void main(){int x[N],i,n;int fun(int *);for(i=0;i<N;i++)scanf("%d",x+i);n=fun(x);printf("index=%d,max=%d\n",n,x[n]);}int fun(int x[]) {int i,max,k=0; max=x[0];for(i=1;i<N;i++)if(x[i]>max){max=x[i];k=i;}return k;}。
四川计算机二级c语言考试27次笔试真题
四川省普通高等学校计算机应用知识和能力第二十七次等级考试二级(C与C++语言) 笔试试卷时间: 2007年10月27 日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 数组也是一种数据结构,一维数组就是一种顺序表结构。
( 1 )2. 递归算法的程序结构比迭代算法的程序结构更为精炼。
( 2 )3. 进程调度按一定的调度算法,从就绪队列中挑选出合适的进程。
( 3 )4. 在单处理器系统中,程序的并发执行,实质上是程序的交替执行。
( 4 )5. 数据的基本单位是数据元素。
( 5 )6. 分页存储管理中,页面可以映射到不连续的内存块中。
( 6 )7. 通道方式能实现外设与CPU之间直接进行数据交换。
( 7 )8. 软件测试和软件调试没有任何区别。
( 8 )9. 白盒测试方法一般适合用于系统测试。
( 9 )10.瀑布模型的突出缺点是不适应用户需求的变化。
( 10 )二、选择题(每小题1分,共5分)1. 线性表不具有的特点是(11 )。
11 (A) 随机访问(B) 无须事先估计所需存储空间大小(C) 插入时不必移动元素(D) 所需空间与线性表长度成正比2. 以下(12 )不是实时操作系统的特点。
12 (A) 高可靠性(B) 及时响应(C) 中断管理(D) 独立性3. 若当前进程因时间片用完而让出处理机时,该进程应转变为(13 )状态。
13 (A) 运行(B) 就绪(C) 等待(D) 完成4. 以下(14 )不是数据结构研究的主要问题。
14 (A) 数据元素之间的逻辑关系(B) 数据元素之间的存储结构(C) 软件开发方法(D) 实现操作的算法5. 软件开发中,模块设计的原则是(15 )。
15 (A) 低偶合、高内聚(B) 高偶合、高内聚(C) 高偶合、低内聚(D) 低偶合、低内聚1. 以下程序的输出结果是(16 )。
(考点:逻辑运算、自增自减运算)# include <stdio.h>void main(){ int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d %d %d\n",k,a,b);}16 (A)0 0 4 (B) 1 0 3 (C) 0 0 3 (D) 1 0 42. 以下对结构体变量stu1中成员age的不正确引用是(17 )。
四川省计算机二级(C语言)29次机试试题 参考答案
29-1套参考答案:一、程序调试题(文件名为test1-1.c)( 40 分)# include <stdio.h># include <string.h># define M 5# define N 20void fun(char (*ss)[N]){ int i,j,k=0,n,m,len;for(i=0;i<M;i++){ len=strlen(ss[i]);if(i=0) n=len; /* 改为:i==0 */if(len<n) /* 改为:len>n */{ n=len;k=i;}}for(i=0;i<M;i++)if(i!=k){ m=n;len=strlen(ss); /* 改为:ss[i] */for(j=len;j>=0;j--)ss[i][m--]=ss[i][j];for(j=0;j<n+len;j++) /* 改为:n-len */ss[i][j]='*';}}void main(){ char ss[M][N];int i;FILE *fp;fp=fopen("test1-1.in","r");if(fp==NULL){ printf("File cannot open!\n");exit(0);}for(i=0;i<M;i++)fscanf("%s",ss[i]); /* 改为:fp,"%s",ss[i] */printf("\nThe original strings are:\n");for(i=0;i<M;i++)printf("%s\n",ss[i]);printf("\n");fun(ss);for(i=0;i<M;i++)printf("%s\n",ss[i]);fclose(fp);}评分标准:每改对一处得8分二、编程题(程序文件取名为test1-2.c)(60分)评分标准:1. main函数30分2. fun函数30分1)字符串和字符输入正确10分1)删除字符方法正确10分2)函数调用参数传递正确10分2)指针使用正确10分3)输出结果正确10分3)s[i]=0 10分参考程序:# include <stdio.h># define N 100int fun(char s[],int c){char *p=s;int i;while(*p){ if(*p!=c) s[i++]=*p;p++;}s[i]=0;}main(){char str[N],ch;printf("\nEnter string:");gets(str);printf("Entera char to be deleted:");scanf("%c",&ch);fun(str,ch);printf("Result=%s\n",str);}29-2套参考答案:一、程序调试题(文件名为test2-1.c)( 40 分)# include <math.h># include <stdio.h>float fun(float num){ int s;float n,t,pi;t=1;pi=0;n=1;s=1;while ( t>=num ) /* 改为:fabs(t)>=num */{ pi=pi+t; n=n+2; s=-s;t=s%n; /* 改为:s/n */}pi=pi*4;return; /* 改为:return pi */}main(){float n1,n2;FILE *fp;fp=fopen("test2-1.out","r"); /* 改为:w */if(fp==NULL){ printf("\nFile cannot open!\n");exit(0);}printf("Enter a float number:");scanf("%f",&n1);n2=fun(); /* 改为:n2=fun(n1) */printf("%6.4f\n",n2);fprintf(fp,"Result=%6.4f\n",n2);fclose(fp);}评分标准:每改对一处得8分二、编程题(程序文件取名为test2-2.c)(60分)评分标准:1. fun函数编写40分2. main函数20分1)函数定义、形参书写正确10分1)能正确字义数组,并能对字符串进2)能正确将字符数组a复制到字符数组c 10分行正确的输入和输出10分3)能正确将字符数组b复制到字符数组c 10分2)能正确调用fun函数10分4)c[k]=’\0’10分参考程序:# include <stdio.h># include <string.h>void fun(char *a,char *b,char *c){int i,j,k;for(i=0;a[i]!='\0';i++)c[i]=a[i];for(k=i,j=strlen(b)-1;j>=0;k++,j--)c[k]=b[j];c[k]='\0';}void main(){char a[50],b[50],c[100];printf("Input string a:");gets(a);printf("Input string b:");gets(b);fun(a,b,c);printf("string c:%s\n",c);}29-3套参考答案:一、程序调试题(文件名为test3-1.c)( 40 分)# include <stdio.h>void fun(int a[],int n){int i,j=0,b[20];for(i=0;i<n;i++)if(a[i]>=0)b[j]=a[i]; /* 改为:j++ */ for(i=0;i<n;i++)if(a[i]>0) /* 改为:< */b[j++]=a[i];for(i=0;i<n;i++)a[i]=b[i];}void main(){int a[10],i;char filename[20];FILE *fp;printf("Input filename:");scanf("%c",filename); /* 改为:%s */if((fp=fopen(filename,"r"))==NULL){printf("Cannot open the file.\n");exit(0);}for(i=0;i<10;i++)fscanf(fp,"%d",a[i]); /* 改为:&a[i] */fun(a,10);for(i=0;i<10;i++)printf("%4d",a+i); /* 改为:a[i] */fclose(fp);}评分标准:每改对一处得8分二、编程题(程序文件取名为test3-2.c)(60分)评分标准:1.fun函数编写40分:1) 函数定义、形参书写正确10分2) 能正确处理n大于s的长度的情况10分3) 能正确处理n小于s的长度的情况10分4) t[j]=’\0’10分2.main函数20分:1) 能正确定义数组,并能正确进行输入输出10分2) 能正确调用函数10分参考程序:# include <stdio.h># include <string.h>void fun(char *s,char *t,int n){int i,j,k;k=strlen(s);if(n>=k){ for(i=0;s[i]!='\0';i++)t[i]=s[i];t[i]='\0';}else{ for(i=k-n,j=0;s[i]!='\0';i++,j++)t[j]=s[i];t[j]='\0';}}void main(){char s[80],t[80];int i,n;printf("Input string:");gets(s);printf("Input n:");scanf("%d",&n);fun(s,t,n);printf("Result:");puts(t);}29-4套参考答案:一、程序调试题(文件名为test4-1.c)( 40 分)# include "stdio.h"# define N =3 /* 改为:3 */int fun(int a[][N],n) /* 改为:int n */ {int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i>=j)a[i][j]=*n; /* 改为:*= */ }main(){int a[N][N],n,i,j;FILE *fp;for(i=0;i<N;i++){ for(j=0;j<N;j++){ a[i][j]=rand()%10;printf("%4d",a[j][i]); /* 改为:a[i][j] */}printf("\n");}don=rand()%10;while(n<=3) /* 改为:(n<=3); */printf("n=%4d\n",n);fun(a,n);fp=fopen("test4-1.out","w");if(fp==NULL){ printf("\nFile cannot open!\n);exit(0);}for(i=0;i<N;i++){ for(j=0;j<N;j++){ printf("%4d",a[i][j]);fprintf(fp,"%4d",a[[i][j]);}printf("\n");}fclose(fp);}评分标准:每改对一处得8分二、编程题(程序文件取名为test4-2.c)(60分)评分标准:1.fun函数编写20分:1) 函数定义、形参书写正确10分2) for循环书写正确10分2.main函数40分:1) 字符串输入和输出正确5分2) 字符串的长度计算准确10分3) 字符串前导*号个数计算准确10分4) 字符串尾部*号个数计算准确10分5) 函数调用参数传递正确5分参考程序:# include <stdio.h>void fun(char *a,int n,int h ,int e){ int i,j=0;for(i=h;i<n-e;i++)a[j++]=a[i];a[j]='\0';}void main(){ char s[81],*t,*f;int m=0,tn=0,fn=0;printf("Enter a string:\n");gets(s);t=f=s;while(*t) {t++; m++; }t--;while(*t=='*') { t--; tn++; }while(*f=='*') { f++; fn++; }fun(s,m,fn,tn);printf(The string after deleted:\n);puts(s);}29-5套参考答案:一、程序调试题(文件名为test5-1.c)( 40 分)# include <stdio.h>void fun(double a,b,*x,*y) /* 改为:double b, double *x, double *y */{ x=a*b; y=a/b; /* 改为:*x=a*b; *y=a/b; */}io(){ int i;double a,b,c,d;file *rf,*wf; /* 改为:FILE */rf=fopen("test5-1.in","r");wf=fopen("test5-1.out","w");fscanf(rf,"%lf%lf",&a,&b);fun(a,b,c,d); /* 改为:fun( a , b , &c , &d ) */fprintf("c=%lf\nn=%lf\n",c,d); /* 改为:fprintf ( wf , "c=%lf\nn=%lf\n" , c , d ) ; */ printf("c=%lf\nn=%lf\n",c,d);fclose(rf);fclose(wf);}void main(){double a,b,c,d;clrscr();io();}评分标准:每改对一处得8分二、编程题(程序文件取名为test5-2.c)(60分)评分标准:1.convert函数25分1) 函数定义(参数)正确10分2) 转置正确15分2.main函数35分1) 二维数组定义正确5分2) 数据输入正确10分3) 函数调用参数传递正确10分4) 结果输出正确10分参考程序:# include <stdio.h>void convert(int a[][4],int b[][3]){int i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)b[j][i]=a[i][j];}void main(){int a[3][4],b[4][3];int i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);convert(a,b);for(i=0;i<4;i++){ for(j=0;j<3;j++)printf("%5d",b[i][j]);printf("\n");}}。
四川省计算机等级考试二级C语言机试题50道真题
四川省计算机等级考试二级C语言机试题50道(1)Date: 2010-01-29 Comments: 0 Views: 1041)下面叙述正确的是________。
A)算法的执行效率与数据的存储结构无关B)算法的空间复杂度是指算法程序中指令(或语句)的条数C)算法的有穷性是指算法必须能在执行有限个步骤之后终止D)算法的时间复杂度是指执行算法程序所需要的时间(1)C知识点:算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)评析:算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。
数据结构和算法是计算机科学的两个重要支柱。
它们是一个不可分割的整体。
算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。
算法的有穷性是指一个算法必须在执行有限的步骤以后结束。
算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数。
(2)以下数据结构属于非线性数据结构的是________。
A)队列B)线性表C)二叉树D)栈(2)C知识点:栈和队列的定义;栈和队列的顺序存储结构及其基本运算评析:线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。
栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。
一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。
所以栈又称后进先出表(Last In First Out)。
队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。
在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。
因此队列又称先进先出表(First In First Out)。
二叉树的数据结构是树型结构,结构中数据元素之间存在着一对多的关系,因此它是一种非线性数据结构。
四川省二级c语言29次机试试题及答案
四川省二级c语言29次机试试题及答案四川省第二十九次计算机二级考试C与C++语言机试试题(2022年10月19日)(第一套)(60分钟)一、程序调试题(40分)磁盘上有一程序tet1-1.c,其中函数fun的功能是:求出形参所指字符串数组中最长字符串的长度,其余字符串左边用字符某补齐,使其与最长的字符串等长。
字符串数组中共有M个字符串,且串长请改正程序中的错误,使程序能得出正确的结果。
注意:不得增行或删行,也不得更改程序结构。
源程序如下:#include#include#defineM5#defineN20voidfun(char(某)[N]){inti,j,k=0,n,m,len;for(i=0;ifor(i=0;i{m=n;len=trlen();for(j=len;j>=0;j--)[i][m--]=[i][j];for(j=0;jvoidmain(){char[M][N];inti;FILE某fp;fp=fopen(\if(fp==NULL){printf(\e某it(0);}for(i=0;iprintf(\for(i=0;iprintf(\printf(\第1页共16页四川省第二十九次计算机二级考试C与C++语言机试试题(2022年10月19日)fun();for(i=0;iprintf(\fcloe(fp);}二、编写程序tet1-2.c(60分)程序的功能是:删除一个字符串中指定的字符。
编写fun函数,其功能是删除一个字符串中指定的字符。
假设字符串为:turbocandborlandc++,指定要删除的字符为n,则删除后的字符串变为:turbocadborladc++。
如果输入的字符在字符串中不存在,则字符串照原样输出。
同一字母的大、小按不同字符处理。
在main函数中输入一个字符串(可以有空格)和一个要删除的字符,调用函数fun,最后输出结果。
第2页共16页四川省第二十九次计算机二级考试C与C++语言机试试题(2022年10月19日)(第二套)(60分钟)一、程序调试题(40分)磁盘上有一个名为tet2-1.c的C程序,其中函数fun的功能是:用下面的公式求的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:41111357例如,程序运行后,输入0.0001,则程序输出3.1414请改正程序中的错误,使程序能得出正确的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(第一套)(60分钟)一、程序调试题(40分)磁盘上有一程序test1-1.c,其中函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。
字符串数组中共有M个字符串,且串长<N。
请改正程序中的错误,使程序能得出正确的结果。
注意:不得增行或删行,也不得更改程序结构。
源程序如下:# include <stdio.h># include <string.h># define M 5# define N 20void fun(char (*ss)[N]){ int i,j,k=0,n,m,len;for(i=0;i<M;i++){ len=strlen(ss[i]);if(i=0) n=len;if(len<n){ n=len;k=i;}}for(i=0;i<M;i++)if(i!=k){ m=n;len=strlen(ss);for(j=len;j>=0;j--)ss[i][m--]=ss[i][j];for(j=0;j<n+len;j++)ss[i][j]='*';}}void main(){ char ss[M][N];int i;FILE *fp;fp=fopen("test1-1.in","r");if(fp==NULL){ printf("File cannot open!\n");exit(0);}for(i=0;i<M;i++)fscanf("%s",ss[i]);printf("\nThe original strings are:\n");for(i=0;i<M;i++)printf("%s\n",ss[i]);printf("\n");fun(ss);for(i=0;i<M;i++)printf("%s\n",ss[i]);fclose(fp);}二、编写程序test1-2.c(60分)程序的功能是:删除一个字符串中指定的字符。
编写fun函数,其功能是删除一个字符串中指定的字符。
假设字符串为:turbo c and borland c++,指定要删除的字符为n,则删除后的字符串变为:turbo c ad borlad c++。
如果输入的字符在字符串中不存在,则字符串照原样输出。
同一字母的大、小按不同字符处理。
在main函数中输入一个字符串(可以有空格)和一个要删除的字符,调用函数fun,最后输出结果。
一、程序调试题(40分)磁盘上有一个名为test2-1.c 的C 程序,其中函数fun 的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:⋯+-+-≈71513141π例如,程序运行后,输入0.0001,则程序输出3.1414 。
请改正程序中的错误,使程序能得出正确的结果。
注意:不得增行或删行,也不得更改程序结构。
源程序如下:# include <math.h># include <stdio.h>float fun(float num){ int s;float n,t,pi;t=1;pi=0;n=1;s=1;while(t>=num){ pi=pi+t; n=n+2; s=-s;t=s%n;}pi=pi*4;return;}main(){float n1,n2;FILE *fp;fp=fopen("test2-1.out","r");if(fp==NULL){ printf("\nFile cannot open!\n");exit(0);}printf("Enter a float number:");scanf("%f",&n1);n2=fun();printf("%6.4f\n",n2);fprintf(fp,"Result=%6.4f\n",n2);fclose(fp);}二、编写程序test2-2.c (60分)编写函数fun ,其功能是:将形参指针a 指向的字符顺序放入形指针c 指向的字符串中,再把形参指针b 指针的字符串逆序放入形参指针c 指向的字符串中。
注:不能使用字符串的复制和连接函数。
例如:a 指向的字符串为adcb ,b 指向的字符串为213,则字符串c 中的内容为adcb312。
一、程序调试题(40分)磁盘上有一个名为test3-1.c的C程序文件,其中函数fun的功能是:将数组a中n个整数进行移动,大于等于0的数放在数组的前面,小于0的数放在后面。
例如:数组中的数为:12 -34 56 -9 -10 25 9 -8 24 90,移动后的结果为:12 56 25 9 24 90 -34 -9 -10 -8在main函数中,从一文本文件test3-1.in中读取10个整数放入整型数组中,调用函数fun,并输出最后的结果。
请改正程序中的错误,使其能得到正确的结果。
注意:不得增行或删行,也不得更改程序结构。
源程序如下:# include <stdio.h>void fun(int a[],int n){int i,j=0,b[20];for(i=0;i<n;i++)if(a[i]>=0)b[j]=a[i];for(i=0;i<n;i++)if(a[i]>0)b[j++]=a[i];for(i=0;i<n;i++)a[i]=b[i];}void main(){int a[10],i;char filename[20];FILE *fp;printf("Input filename:");scanf("%c",filename);if((fp=fopen(filename,"r"))==NULL){printf("Cannot open the file.\n");exit(0);}for(i=0;i<10;i++)fscanf(fp,"%d",a[i]);fun(a,10);for(i=0;i<10;i++)printf("%4d",a+i);fclose(fp);}二、编写程序test3-2.c(60分)编写函数fun,函数fun的功能是:将字符串s最右边的n个字符赋值到新串t中,若n大于s的长度,则将s复制到t中。
注:不能使用字符串的复制函数。
例如:字符串s为abcdefgh,n=5,则字符串t为defgh 。
main函数中输入一字符串s及n的值,调用fun函数并输出结果。
(第四套)(60分钟)一、程序调试题(40分)磁盘上有一个名为test4-1.c 的C 程序文件,其功能是:在main 函数中随机生成一个N*N 的二维数组,fun 函数使该数组左下半三角元素中的值乘以n 。
例如n=3,当a 数组中的值为:⎪⎪⎪⎭⎫ ⎝⎛=654832791a ,运行程序后a 数组的值就变为:⎪⎪⎪⎭⎫ ⎝⎛=181512896793a 在main 函数中将运行结果输出到屏幕上和文件test4-1.out 中。
请改正程序中的错误,使它能得出正确结果。
注意:不得增行或删行,也不得更改程序结构。
源程序如下:# include "stdio.h"# define N =3int fun(int a[][N],n){int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i>=j)a[i][j]=*n;}main(){int a[N][N],n,i,j;FILE *fp;for(i=0;i<N;i++){ for(j=0;j<N;j++){ a[i][j]=rand()%10;printf("%4d",a[j][i]);}printf("\n");}don=rand()%10;while(n<=3)printf("n=%4d\n",n);fun(a,n);fp=fopen("test4-1.out","w");if(fp==NULL){ printf("\nFile cannot open!\n);exit(0);}for(i=0;i<N;i++){ for(j=0;j<N;j++){ printf("%4d",a[i][j]);fprintf(fp,"%4d",a[[i][j]);}printf("\n");}fclose(fp);}二、编写程序test4-2.c(60分)假定输入的字符串只包含字母和*号。
请编写函数fun(),它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。
形参n给出字符串的长度,形参h给出字符串中前导*号的个数,形参e给出字符串中尾部*号的个数。
在编写函数时,不得使用C语言提供的字符串函数。
例如,若字符串中的内容****A*BC*DEF*G*******,删除后,字符串中的内容则应该是A* BC*DEF*G。
(第五套)(60分钟)一、程序调试题(40分)给定程序test5-1.c,函数fun的功能是求两个形参的乘积和商,其结果存入形参指针所指的地址中,函数io实现数据的输入和输出。
假设输入文件test5-1.in有数据61.82和12.65,则两个数的乘积和商分别为782.02300和4.886957 。
main函数调用函数io 。
请改正程序中的错误,使程序能得出正确结果。
、注意:不得增行或删行,也不得更改程序结构。
源程序如下:# include <stdio.h>void fun(double a,b,*x,*y){ x=a*b; y=a/b;}io(){ int i;double a,b,c,d;file *rf,*wf;rf=fopen("test5-1.in","r");wf=fopen("test5-1.out","w");fscanf(rf,"%lf%lf",&a,&b);fun(a,b,c,d);fprintf("c=%lf\nn=%lf\n",c,d);printf("c=%lf\nn=%lf\n",c,d);fclose(rf);fclose(wf);}void main(){double a,b,c,d;clrscr();io();}二、编写程序test5-2.c(60分)用函数调用方式编写程序。