樊文有老师C++上机题目
- 格式:doc
- 大小:29.50 KB
- 文档页数:3
2017年全国计算机等级考试C语言上机考试题库学生练习用第一套至第二十套第一套:1、程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
所有学生数据均以二进制方式输出到文件中。
函数fun的功能是重写形参filename 所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!-----------------------------------------------------------------------------------------------------------------#include <stdio.h>#define N 5typedef struct student {long sno;char name[10];float score[3];} STU;void fun(char *filename, STU n){ FILE *fp;/**********found**********/fp = fopen(__1__, "rb+");/**********found**********/fseek(__2__, -(long)sizeof(STU), SEEK_END);/**********found**********/fwrite(&n, sizeof(STU), 1, __3__);fclose(fp);}main(){ 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}};STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N];int i,j; FILE *fp;fp = fopen("student.dat", "wb");fwrite(t, sizeof(STU), N, fp);fclose(fp);fp = fopen("student.dat", "rb");fread(ss, sizeof(STU), N, fp);fclose(fp);printf("\nThe original data :\n\n");for (j=0; j<N; j++){ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);printf("\n");}fun("student.dat", n);printf("\nThe data after modifing :\n\n");fp = fopen("student.dat", "rb");fread(ss, sizeof(STU), N, fp);fclose(fp);for (j=0; j<N; j++){ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);printf("\n");}}-----------------------------------------------------------------------------------------------------------------【参考答案】(1)filename (2)fp (3)fp【解题思路】填空1:本空是对文本文件的打开,filename所指的文件中的最后数据要进行重写,因此首先是要打开,因而本空填写filename。
程序设计与C++语言(上)期终考试(04-05-2)上机考试试卷_A学号姓名机位号(考试时间70分钟,卷面分数30分)说明:首先在K盘建立一个以自己的学号命名的文件夹,用于保存上交的考试文件。
对以下问题编制程序,调试运行,输出结果。
一、结构化程序(15分)【题目】数字处理【要求】1.定义一个函数int digit(int x),功能是计算并输出x的位数a,取x的最高位数字b,若x>0则返回a*b,否则返回0。
2.主函数负责输入输出。
从键盘输入5个各不相同的正整数,调用函数digit ( )对数据进行处理,输出返回的结果信息。
3.输出格式为:<x值>的位数:…,最高位:…,计算结果:…。
【注意】将源程序以“学号F1.cpp”为文件名存入K盘自己的目录中。
二、面向对象程序(15分)【题目】职工信息管理【要求】试建立一个类Worker用于描述职工对象,具体要求如下:●私有数据成员int id: 职工号。
float wage: 工资。
char level: 技术等级(A—一等,B—二等,C—三等,NULL—无级,其它为无效)●公有成员函数(1)缺省构造函数:初始化数据成员为0或NULL值。
(2)带参构造函数:用参数初始化数据成员(需判断参数是否有效)。
(3)输出函数void List( ):输出本职工的各项信息。
(4)修改函数void Set( ):从键盘输入新的职工号、工资和等级数据,修改相应数据成员的值。
接受输入前屏幕上显示提示输入哪些信息。
(5)升级函数void Up( ): 为职工增加工资并提升技术等级,先输入增加工资数额(从无级提至C级需增加200元,从C级提至B级需增加100元,从B级提至A级需增加150元),再修改相应数据成员的值。
●主函数:定义三个不同的worker对象作为测试数据,完成对worker 类和程序的测试。
每个成员函数至少被调用一次。
【注意】将源程序以“学号F2.cpp”为文件名存入K盘自己的目录中。
计算机二级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语言上机实验答案上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)____ Very Good____ 2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:================================= 1 输入数据2 修改数据 3 查询数据 4 打印数据================================= 5、从键盘上输入两个整数,交换这两个整数。
四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include stdio.h void main( ){ printf(“__\n”); printf(“ Very Good\n”);printf(“__\n”);}2、#include stdio.h void main( ) { int a,b,c,d;科大学长上传方便学弟学妹printf(“Please enter a,b:”); scanf(“%d,%d”,a, c=a+b; d=a*b;printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d);}3、#include stdio.h #include math.h void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”, s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include stdio.h void main( ){ printf(“==================================\n”); printf(“ 1 输入数据2 修改数据\n”); printf(“ 3 查询数据4 打印数据\n”);printf(“===================================\n”); }5、#include stdio.h void main( ) { int x,y,t;printf(“Please enter x and y:”); scanf(“%d%d”,x, t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。
2017年全国计算机等级考试C 语言上机考试题库---41-60套2017年全国计算机等级考试C语言上机考试题库学生练习用第41套至第60套第四十一套1、程序填空下列给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。
例如,若s所指字符串为:"asd123fgh543df",处理后新字符串为:"asdfghdf123543"。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!-----------------------------------------------------------------------------------------------------------------#include <stdio.h>#include <stdlib.h>#include <string.h>char *fun(char *s){ int i, j, k, n; char *p, *t;n=strlen(s)+1;t=(char*)malloc(n*sizeof(char));p=(char*)malloc(n*sizeof(char));j=0; k=0;for(i=0; i<n; i++){ if(((s[i]>='a')&&(s[i]<='z'))||((s[i]> ='A')&&(s[i]<='Z'))) {/**********found**********/t[j]=__1__; j++;}else{ p[k]=s[i]; k++; }}/**********found**********/for(i=0; i<__2__; i++) t[j+i]=p[i];/**********found**********/t[j+k]= __3__;return t;}main(){ char s[80];printf("Please input: "); scanf("%s",s);printf("\nThe result is: %s\n",fun(s)); }{char *p , *r, *a;strcpy( w, s );/************found************/while ( w ){ p = w; r = t1;while ( *r )/************found************/IF ( *r == *p ){ r++; p++; }else break;if ( *r == '\0' ) a = w;w++;}r = t2;while ( *r ){ *a = *r; a++; r++; }}main(){char s[100], t1[100], t2[100], w[100];printf("\nPlease enter string S:"); scanf("%s", s);printf("\nPlease enter substring t1:"); scanf("%s", t1);printf("\nPlease enter substring t2:"); scanf("%s", t2);if ( strlen(t1)==strlen(t2) ){ fun( s, t1, t2, w);printf("\nThe result is : %s\n", w); }else printf("\nError : strlen(t1) != strlen(t2)\n");}-----------------------------------------------------------------------------------------------------------------【参考答案】(1)while(*w)(2)if(*r==*p)【考点分析】本题考查:while循环语句,C语言中的关键字。
3.2 上机操作题部分第1套上机考试试题一、程序填空题请补充函数proc(),该函数的功能是计算下面公式SN的值:例如,当N=20时,SN=29.031674。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdlib.}1>#include<conio.h>#include<stdio.h>double proc(int n){double s=1.0,s1=0.0;int k;for(【1】;k<=n;k++){s1=s:【2】;return 【3】;}void main(){int k=0;double sum:system(”CLS”):printf(”\nPlease input N=”):scanf(”%d”,&k);sum=proc(k):printf(”\nS=%Lf”.sum);}二、程序改错题下列给定程序中,函数proc()的功能是根据整型形参n,计算如下公式的值:y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)例如,n中的值为10,则应输出0.817962。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:#include<sldlib.h>#include<conio.h>#include<stdio.h>double proc(int n){double y=1.0;//****found****int j=1;int i;for(i=2;i<=n.;i++){j=-1*j;//****found****y+=1/(i*i);}return(y);}void main(){int n=10:system(”(CLS”):printf(”\nThe result is%lf\n”,proc(n));)三、程序设计题编写一个函数,从传人的M个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
全国计算机等级考试C语言程序设计上机考试习题集(2011年版)南开上机100练题目前带★号的是在2004年4月份上机考试中被考生们所确定了的上机题。
题目前带☆号的是在2004年9月份上机考试中被考生们所确定了的上机题。
题目中所提示的“无忧id xx”指的是2004年上半年版无忧模拟系统中的固定抽题序号题目中所提示的“捷成id xx”指的是2004年上半年版捷成模拟系统中的固定抽题序号******************************************************************************** *********题目1(无忧id 14、id 27(提供isP()函数;捷成id 23题)请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include <conio.h>#include <stdio.h>void readwriteDat();int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}main(){int m,n,xx[1000];clrscr();printf("\nPlease enter two integers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d ",xx[m]);printf("\n");readwriteDat();}void readwriteDat(){int m,n,xx[1000], i;FILE *rf,*wf;rf=fopen("in.dat","r");wf=fopen("","w");for(i=0;i<10;i++){fscanf(rf,"%d %d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}无忧id 14题(无isP()函数)#include <stdio.h>void jsValue(int m,int k,int xx[]){ int i,j,s=0;for(i=m+1;k>0;i++){ for(j=2;j<i;j++)if(i%j==0) break;if(i==j) { xx[s++]=i; k--;}}}main(){int m,n,zz[100];printf("\n请输入两个整数:");scanf("%d%d",&m,&n);jsValue(m,n,zz);for(m=0;m<n;m++)printf("%d ",zz[m]);printf("\n");writeDat();}writeDat(){int m,n,zz[100],i;FILE *in,*out;in=fopen("in.dat","r");out=fopen("","w");for(i=0;i<10;i++){fscanf(in,"%d%d",&m,&n);jsValue(m,n,zz);for(m=0;m<n;m++)fprintf(out,"%d ",zz[m]);fprintf(out,"\n");}fclose(in);fclose(out);}另一解法:void num(int m,int k,int xx[]){int n=0,data=m+1;while(n<k){if(isP(data)) xx[n++]=data;data++;}}******************************************************************************** *********★题目2(无忧id 143 整数排序题)已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
高一上机任务(4)
(文章)三峡加大下泄流量
新华网宜昌9月19日电(记者刘紫凌冯国栋)19日晚,为应对迅速上涨的长江上游来水,正在进行175米试验性蓄水的三峡枢纽将下泄流量增至2万立方米/秒以上。
记者从三峡枢纽建设运行管理局了解到,日前嘉陵江流域普降暴雨,局部地方特大暴雨,导致长江上游支流水位上涨。
19日,三峡区间最大来水量为3万立方米/秒,预计20日将迎来流量为4万立方米/秒以上的洪峰。
设置操作:我们输入文字,默认是宋体、五号。
输入的文章是不美观的所以我们学习怎么设置这些文字,使其美观!
如何选中:选中后会呈反色
方法:先把鼠标光标移至要选中的文字前面,按住鼠标左键不
放,拖动来完成。
1、把上面文章的标题字号设成三号,字体为黑体,字形为加粗。
方法:选中标题—“格式”—“字体”—“加粗”—“确定”。
2、把文章标题设为居中,不能用空格来居中。
方法:选中标题—“格式”—“段落”—“对齐方式”—“居中”—“确定”。
3、把第一段文字字号设置成小四,字体为楷体。
保存:请保存在E盘,文件名用自己的姓名+日期,并上传作业。
方法:“文件”—“另存为”—选择保存位置和文件名—
“保存”。
第9周周四下午信息楼 203 204 10月31日
第10周周四下午信息楼 105 11月7日
第11周周四下午信息楼 105 11月14日
第12周周四下午信息楼 105 11月21日
1.1 abc.txt文件中有一些整数,试编程实现循环输入文件中的整数,判断其能否被3、5、7整除,并对每个整数输出以下信息之一:
(1)能否同时被3、5、7整除;
(2)能否被其中两个数整除(指出哪两个);
(3)能否被其中一个数整除(指出哪一个);
(4)不能被3、5、7任意整除;
(5)假设不知道文件有多少个点,但至少多余2000个(可随机生成点存于文件中),重复上述过程并统计完成程序所用时间,(考虑设计的性能)熟悉向量、文件循环输入输出;
1.2 数学应用题
编写一个求解n元一次方程组的函数,单独在一个cpp文件中,在另个函数
中实现调用。
如给定一个三元一次方程组调用测试。
第二题构造一个类要求包含有:(必作题)
(1)拷贝构造函数
由p1构造p2 : Person p2(p1);
对象参数传递 fun(p1);
对象返回 return p1
(2)操作符重载
赋值操作符 Person p2=p1;
运算操作符如 p=p1+p2
(3)对象中本体与实体不一致
也就是有指针成员变量如 char* buf;
(4)要有友元函数
如输出<< 或者运算符
(5)要有常成员函数如输出函数
(6)要分别显示对象本体与实体的长度
选作题编写一个老师和学生的管理,要求:(选做题)
1 构造两个类:
(1) Student类:包含学号,姓名,年龄,所在班级,班主任老师/指导老师,备注...... (2) Teacher类:包含姓名,性别,地址,管理班级......
2 其中老师是学生的友类,可以查看学生信息。
3 能够手工添加学生和老师信息(输入、对象添加)
4 通过学生类显示学生信息(设计成常成员函数)
5 通过老师类查看老师信息、查看学生信息
5 保存输入的结果到文件或者数据库
6 可以继续打开保存的结果查看和修改
7 每增加一个学生,自动维护学生人数,并保存在结果文件中
界面风格不限
第三题编程实现类与类之间的关系,体现继承和多态,要求:
(1)体现三类继承方式的区别 private public protected
(2)要有纯虚函数做界面类
(3)要有成员类
(4)实现类成员初始化
(5)输出构造顺序
//下面两题选作一题熟悉windows编程
第四题利用VC++绘制基本图形(三角形,矩形,圆),有条件绘制三维图形(如圆柱体,立方体等),并保存绘制结果。
(图形界面)
第五题利用VC++编程实现游戏程序(俄罗斯方块,五子棋,扫雷,计算器等)。
iostream和iostream.h的区别
前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。
后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。
因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用< iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。
namespace是指标识符的各种可见范围
C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:
std 是一个命名空间..
不同的命名空间可以有相同的类名被定义 ..
using namespace std;
就是指明下面的程序使用std,如果不用这句指明的话就要用std::string(string是std空间中定义的
也可以在全局空间中定义,只要名字空间不一样即可..)..
否则可以默认名字空间中有std.便不用std::来修饰
它是C++新标准中有的,解决多人作编大程序时名字冲突问题。
比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人
如果你用#include<iostream.h>就不需写这句话(旧标准)。
但是如果你用
#include<iostream>就必须要写。