二级C语言模拟题8详解

合集下载

2018年9月计算机二级C语言考试章节习题及答案(8)

2018年9月计算机二级C语言考试章节习题及答案(8)

2018年9月计算机二级C语言考试章节习题及答案(8) 第2章 C程序设计的初步知识2.5 算术表达式1 [单选题] 以下不能正确计算代数式值的C语言表达式是( )。

A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)参考答案:A2 [单选题] 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。

A.1B.0C.2D.不知道a的值,不能确定参考答案:A参考解析:逻辑或”||”要求只要两边的运算对象有一个非零,结果就为真。

虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1。

3 [单选题] 设变量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;4 [单选题] 表达式3.6-5/2+1.2+5%2的值是( )。

A.4.3B.4.8C.3.3D.3.8参考答案:D 。

参考解析:此题考核的是算术运算符的运算规则,算术运算符的结合方向为“自左至右”,先按运算符的优先级别高低次序执行,同时在C中两个整数相除或求余数其结果依旧为整数。

计算后结果为3.8。

5 [单选题] 已知字母A的ASCIl代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A.kk>='A'&&kk<='Z'B.!(kk>='A'||kk<='Z')C.(kk+32)>='a'&&(kk+32)<='z'D.isalpha(kk)&&(kk<91)参考答案:B6 [单选题] 当变量 c 的值不为 2、4、6时,值也为“真”的表达式是A.(c==2)||(c==4)||(c==6)B.(c>=2&&c<=6)||(c!=3)||(c!=5)C.(c>=2&&c<=6)&&!(c%2)D.(c>=2&&c<=6)&&(c%2!=1)参考答案:B参考解析:条件语句if(a>B.不成立,所以语句a=b;不执行,语句c=a;执行后, c=3,此时条件语句if(C!=A.不成立,所以语句c=b;不执行。

二级C++语言程序设计模拟试题及答案解析(8)

二级C++语言程序设计模拟试题及答案解析(8)

二级C++语言程序设计模拟试题及答案解析(8)(1/40)单项选择题第1题下面叙述中错误的是______。

A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执行测试计划,排除测试的随意性下一题(2/40)单项选择题第2题下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是______。

A.cout<<internal<<32345;B.cout<<left<<12345;C.cout<<right<<12345;D.cout<<setw(6)<<12345;上一题下一题(3/40)单项选择题第3题有如下程序:#include<iostream>using namespace std;class test{private:int a;public:test(){cout<<"constructor"<<endl;}test(int a){cout<<a<<endl;}test(const test &_test){a=_test.a;cout<<"copy constructor"<<endl;}~test(){cout<<"destructor"<<endl;}};int main(){test A(3);return 0;}执行这个程序的输出结果是______。

A.3B.constructordestructorC.copy constructordestructorD.3destructor上一题下一题(4/40)单项选择题第4题索引属于A.模式B.内模式C.外模式D.概念模式上一题下一题(5/40)单项选择题第5题C++模板包括。

A.类模板和函数模板B.模板类和模板函数C.类和函数D.对象和函数上一题下一题(6/40)单项选择题第6题有如下程序:#include<iostream>using namespace std;class Base{protected:Base(){cout<<'Base';}Base(char c){cout<<c;}};class Derived:public Base{public:Derived(char c){cout<<c;}};int main(){Derived d('Derived');return 0;}执行这个程序屏幕上将显示输出。

国家二级(C语言)机试模拟试卷123(题后含答案及解析)

国家二级(C语言)机试模拟试卷123(题后含答案及解析)

国家二级(C语言)机试模拟试卷123(题后含答案及解析)题型有:1. 选择题 2. 程序填空题 3. 程序修改题 4. 程序设计题选择题1.在关系代数运算中,有5种基本运算,它们是( )。

A.并(∪)、差(-)、交(∩)、除(÷)和笛卡儿积(×)B.并(∪)、差(-)、交(∩)、投影(π)和选择(σ)C.并(∪)、交(∩)、投影(π)、选择(σ)和笛卡儿积(×)D.并(∪)、差(-)、投影(π)、选择(σ)和笛卡儿积(×)正确答案:D解析:并、差、笛卡儿积、投影和选择是5种基本的运算,其他运算即交、连接和除,均可以通过5种基本的运算来表达。

2.在数据库系统的组织结构中,下列( )映射把用户数据库与概念数据库联系了起来。

A.外模式/模式B.内模式/外模式C.模式/内模式D.内模式/模式正确答案:A解析:数据库有两层映像,即外模式/模式和模式/内模式映像。

模式/内模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。

3.下列关于线性链表的描述中,正确的是( )。

Ⅰ、只含有一个指针域来存放下一个元素地址Ⅱ、指针域中的指针用于指向该结点的前一个或后一个结点(即前件或后件)Ⅲ、结点由两部分组成:数据域和指针域。

A.仅Ⅰ、ⅡB.仅Ⅰ、ⅢC.仅Ⅱ、ⅢD.全部正确答案:D解析:在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。

在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。

其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。

4.下面关于数据库三级模式结构的叙述中,正确的是( )。

A.内模式可以有多个,外模式和模式只有一个B.外模式可以有多个,内模式和模式只有一个C.内模式只有一个,模式和外模式可以有多个D.模式只有一个,外模式和内模式可以有多个正确答案:B解析:数据库的三级模式结构是指数据库系统的外模式、模式和内模式。

国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。

所有学生数据均以二进制方式输出到文件中。

函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!试题程序:1 #include<Stdio.H>2 #define N 53 typedef struct student {4 long sno;5 char name[10];6 float score[3];7 }STU;8 void fun(char*filename,STU n)9 {FILE*fp;10 /*********found*********/11 fp=fopen(【1】,”rb+”);12 /*********found*********/13 fseek(【2】,-(long)sizeof(STU),SEEK END);14 /*********found*********/15 fwrite(&n,sizeof(STU),1,【3】);16 fclose(fP);17 }18 main( )19 {STU t[N]={{10001,”MaChao”,91,92,77},{10002,”CaoKai”,75,60,88},{10003,”LiSi”,85,70,78),{10004,”FangFang”,90,82,87},{10005,”ZhangSan”,95,80,88)};20 STU n={10006,”ZhaoSi”,55,70,68},SS[N];21 int i,j;FILE*fP;22 fp=fopen(“student.dat”,”wb”);23 fwrite(t,sizeof(STU),N,fp);24 fclose(fp);25 fp=fopen(“student.da”,”rb”);26 freacl(ss,sizeof(STU),N,fp);27 fclose(fp);28 print;f(“\nThe original data:\n\n”);29 for(j=0;j<N;j++)30 {printf(“\nNo:%ld Name:%一8s Scores:”,ss[j].sno,ss[j].name);31 for(i=0;i<3;i++)32 printf(“%6.2f”,ss[j].score[i]);33 printf(“\n”);34 }35 fun(“student.dat”,n);36 printf(“\nThe data after modif-ing:\n\n”);37 fp=fopen(“student.dat”,”rb”);38 fread(ss,Sizeof(STU),N,fp);39 fclose(fp);40 for(j=0;j<N;j++)41 {printf(“\nNo:%ld Name:%-8s Scores:”,ss[j].sno,ss[j].name);42 for(i=0;i<3;i++)43 printf(“%6.2f”,ss[j].score[i]);44 printf(“\n”);45 }46 }正确答案:(1)filename(2)fp(3)fp解析:填空1:本空是对文本文件的打开,filename所指的文件中的最后数据要进行重写,因此首先是要打开,因而本空填写filename。

计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。

2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。

二、填空题1. 在C语言中,`________`关键字用于声明一个函数。

答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。

2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。

```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。

三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。

```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。

2. 编写一个C语言程序,实现将一个字符串反转。

```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。

国家二级C语言机试(操作题)模拟试卷8(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷8(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷8(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:在形参SS所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。

SS 所指字符串数组中共有N个字符串,且串长小于M。

程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!#include <Stdio.h>#include <String.h>#define N 5#define M 15void fun(char(*SS)[M],char *substr){ int i,find=0;/**********found**********/for(i=0;i<____1____;i++)/**********found**********/if(strstr(ss[i],____2____)!=NULL) { find=1;puts(ss[i]);print f(“\n”);}/**********found**********/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<N;i++)puts(x[i]);printf(“\n”);printf(“\nEnter a string for search:”);gets(str);fun(x,str);}正确答案:(1)N(2)substr(3)0解析:第一空:“for(i=0;i<___1___;i++)”补充循环的结束条件,fun的参数(*ss)[M]是指向N行M列的字符串数组,循环是逐行字符串是否含有substr 所指的子串,因此循环次数是N次,故第一空处应为“N”。

国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。

操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。

例如,若N=3,有下列矩阵: 1 2 3 计算结果为7 4 1 4 5 6 8 5 2 7 8 9 9 6 3 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 void fun(int(*t)[N])4 { int j,r[N];5 for(j=0;j<N;j++)r[j]=t[0][j];6 for(j=0;j<N;j++)7 /**********found**********/8 t[0][N-j-1]=t[j][__1__];9 for(j=0;j<N;j++)10 t[j][0]=t[N-1][j];11 /**********found**********/12 for(j=N-1;j>=0;__2__)13 t[N-1][N-1-j]=t[j][N-1];14 for(j=N-1;j>=0;j--)15 /**********found**********/16 t[j][N-1]=r[__3__];17 }18 main( )19 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;20 printf(‘‘\nThe original array:\n’’);21 for(2=0;i<N;i++)22 {for(j=0;j<N;j++)printf(‘‘%2d”,t[i][j]);23 printf(‘‘\n’’);24 }25 fun(t);26 printf(‘‘\nThe result is:\n’’);27 for(i=0;i<N;i++)28 { for(j=0;j<N;j++)printf(‘‘%2d’’,t[i][j]);29 printf(‘‘\n’’);30 }31 }正确答案:(1)0 (2)j-- (3)j解析:第一空:由审题分析可知,此处是使第一列成为第一行,即把第一列元素移动到第一行,第一列元素是“t[j][0]”,第一行元素是“t[0][N-j-1]”,故第一空处应为“0”。

计算机二级《C语言》模拟试题及答案

计算机二级《C语言》模拟试题及答案

计算机二级《C语言》模拟试题及答案计算机C语言是学计算机设计的根底语言,同学们学得怎么样了呢?为同学分享最新的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.模块间的关系B.系统构造部件转换成软件的过程描述C.软件层次构造D.软件开发过程8.两个或两个以上模块之间关联的严密程度称为( )。

A.耦合度B.内聚度C.复杂度D.数据传输特性9.以下描述错误的选项是( )。

A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合10.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题1.结构化程序设计的三种基本结构是()。

A)函数结构、分支结构、判断结构B)函数结构、嵌套结构、平行结构C)顺序结构、分支结构、循环结构D) 分支结构、循环结构、嵌套结构答案C:常识,记下来。

2.以下()是正确的浮点数。

A)e3 B).62 C)2e4.5 D)123答案:B,A错,e前要有整数,C错,e后要为整数,D是整形数据。

3.若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是()。

A)x=x*3=2 B)x=(y==1) C)i=float(x) D)i%(-3)答案:B,A错,赋值号左边不能是表达式,C错,强制转换要括号,D错,不能用浮点型数据求余数4.若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是()。

A)7 B)8 C)9 D)10答案:B,注意a*2并不影响a,b++则让b变成了6,最后a+b为2+6=85.已有如下定义和输入语句int a,b;scanf(“%d,%d”,&a,&b);若要求a、b的值分别为10和20,正确的数据输入是()。

A)10 20 B)10,20 C)a=10,b=20 D)10;20答案:根据题目scanf的格式,有逗号,没赋值号,所以答案C。

6.若有定义:int x=3,y=4,z=5:则值为0的表达式是()。

A)’x’&&’y’B)x<=y C)x||y+z&&y-z D)!((x<y)&&!z||1)答案:D,D中括号内为1,再加上非,那么就是0。

7.若有定义:int b=7;float a=2.5,c=4.7;表达式a+(b/2*(int)(a+c)/2)%4的值是 ( ).A)2.5 B)3.5 C)4.5 D)5.5答案:C,这种题目要是不想思考,直接运行即可。

显示:8.以下程序的运行结果是()。

void main(){int n=’c’;swithc(n++){default:printf(”error”); break;case ’a’:case ’b’: printf(”good”);break;case ’c’: printf(”pass”);case ’d’: printf(”warn”);}}A)pass B)ward C)pass warn D)error答案C,n++还是c,对应到case中,打印pass,后面没有break,直接往下运行,显示warn,所以最后显示是 C9.以下程序的运行结果是()。

void main(){int sum=0,item=0;while(item<5){item++;sum+=item;if(sum>=6) break;}printf(”%d\n”,sum);}A)10 B)15 C)6 D)7答案:C,直接运行即可。

10.下面程序段的运行结果是()。

int i=0,a[]={7,5,7,3,8,3};do{a[i]+=2;}while(a[++i]> 5);for(i=0;i<6;i++) printf(”%d”,a[i]);A)9 7 9 5 10 5 B)9 5 9 3 10 3 C)9 5 7 3 8 3 D)7 5 7 3 8 3答案:C,直接运行。

显示:11.以下数组定义中,正确的是()。

A)int a[2][]={1,2,3,4,5}; B)int a[][2]={{0},{}};C)int a[2][2]={{1,2},{3}}; D)int a[][]={1,2,3,4};答案C,AD都错,第二维不能缺省。

B错,初始化不能出现:{},属于完全不赋值,对于二维的也不行。

12.以下程序段运行后屏幕输出为()。

char str[80];strcpy(str,”hello”); printf(”%d”,strlen(str));A)5 B)6 C)7 D)80答案:A,hello之后就是\0,结束,5个字符。

13. 下面程序的输出结果是()。

#include<stdio.h>int global=100;fun(){int global=5;return ++global;}void main(){ printf(“%d\n”,fun());}A)100 B)101 C)5 D)6答案:D,直接黏贴运行。

显示:14.下面程序的输出结果是()#include<stdio.h>#define ONE 1#define TWO ONE+1#define THREE TWO+1void main(){printf(” %d\n”,THREE-ONE);}A)产生错误B)1 C)2 D)3答案:C,这种题目注意不能合并,一不能加括号,而不能把+的结果算出来,最保险的办法就是运行,显示:如果要计算也可以,这样算:THREE-ONE= TWO+1- ONE= ONE+1+1- ONE=215.在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;当执行p++;后下列叙述错误的是()。

A)p=向高地址移了一个字节B)p与a+1等价C)语句printf(”%d”,*p);输出20 D)p指向数组元素a[1]答案A,应该移动了一个元素单元,int是两个字节,所以是两个字节。

16.下面程序的输出结果是()#include<stdio.h>void main(){char *str=”12345”,*ps=str+4;printf(”%c \n”,ps[-4]);}A)1 B)2 C)3 D)错误答案A,直接运行:显示:17.以下程序的运行结果是()。

#include<stdio.h>union Utype{int i;float f;};struct{char ch[2];int i;union Utpye u;}a;void main(){printf(”sizeof(a):%d\n”,sizeof(a));}A)5 B)6 C)7 D) 8答案选D,Utpye占字节为4,结构体为成员之和,2+2+4=818. 若有如下定义,函数fun的功能是( )。

其中head指向链表首结点,整个链表结构如下图:struct node{int data;struct node *next;};void fun(struct node *head){struct node *t=head;while(t!=NULL){ if(t->data%2==0) printf(“%d”,t->data);t=t->next; }}A)遍历链表head,输出表中值为偶数的元素B)建立一个只有表头结点的链表head C)删除链表head中的第一个结点D)插入一个元素到链表head中答案A,核心代码中有data%2==0,表示偶数,所以选A。

19.若有以下类型说明,叙述正确的是()。

typedef struct{int num;char *name;int score;}STU,*PSTU;A)STU是变量名B)PSTU是变量名C)PSTU是指向结构体类型STU的指针类型名D)类型说明语句有错误答案C,A错,STU是结构类型名,B错,PSTU是指向STU的指针类型,D错。

20.对下面程序正确的描述是()。

#include<stdio.h>#include<stdlib.h>void main(){FILE *in,*out;if((in=fopen(“infile.txt”,”r”))==NULL){ printf(“cannot open infile\n”);exit(0);}if((in=fopen(“outfile.txt”,”w”))==NULL){ printf(“cannot open infile\n”);exit(0);}while(!feof(in)) fputc(fgetc(in),out);fclose(in);fclose(out);}A) 程序实现在屏幕上显示磁盘文件infile.txt的内容B) 程序实现将两个磁盘文件infile.txt 和outfile.txt 的内容合二为一C) 程序实现将磁盘文件infile.txt 复制到磁盘文件outfile.txt D) 程序实现将两个磁盘文件合并并在屏幕上输出答案C ,fputc(fgetc(in)就是读入infile ,写到outfile ,这就是复制了。

二、改错题(共2小题,每题10分)1.程序cmody081.c ,其功能是求一堆零件的总数(100到200之间)。

如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

#include <stdio.h>void main(){int i;/**/for(i=100;i<200;i++);/**/if((i-2)%4==0)if(!((i-3)%7))if(i%9==5) printf(”%d\n ”,/**/ &I /**/);getch();}答案:for(i=100;i<=200;i++) printf(“%d\n ”,i);第一处,少了一个等号,因为包含了200,要小于等于,第二处是输出,不能带&。

2.程序cmody082.c 其功能是交换两个变量的值。

如 输入:2 3 输出:Original:a=2 b=3 Result a=3 b=2#include<stdio.h>/**/ void swap(int p1,int p2)/**/{int temp;temp=*p1;/**/p1=p2;/**/*p2=temp;}void main(){int a,b;printf(”Please input 2 number: \n ”);scanf(”%d%d ”,&a,&b);printf(”\nOriginal:a=%d b=%d\n ”,a,b);swap(&a,&b);printf(”\nResult:a=%d b=%d\n ”,a,b);getch();}答案:int swap(int p1,int p2) *p1=*p2;第一处错,注意返回是int 型,第二处错,是指针的内容在交换,应该改成:*p1=*p2;三、填空题(共3小题,每题8分)1.补充程序Ccon081.c ,根据输入的整数m(m>=0)值,计算1m i i =∑#include<stdio.h>unsigned sum(unsigned n) {unsigned i, /**/ /**/for(i=1;i<=n;i++) sum+=i;/**/ /**/}void main(){int m;clrscr();printf(”Please input a unsigned integer:”);scanf(“%d”,&m);while(m<0){printf(”Please input a unsigned integer:”);scanf(“%d”,&m);}printf(”\nThe sum is %d\n”, /**/ /**/);getch();}答案:sum=0 return sum; sum(m)第一空,赋初始值,第二处,返回结果,第三处,调用子函数。

相关文档
最新文档