您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 大一计算机上机题目及答案(西电专用)
《《程序设计实践》上机报告要求:五次上机(每次8机时)正确完成8~10题。最终提交:(1)电子版文档。格式模板参见《程序设计基础实验报告》(注意文档最后一部分包含课程设计小结)。(2)打印电子版文档。(3)源程序,打包成压缩文件提交。注意:(1)压缩文件格式:学号.zip(或rar)。例如:03051122.zip(或03051122.rar)(2)各源程序命名方式:no题号.c。例如:no3.c(3)源程序压缩包内只包含各题目的源程序和程序运行过程中需要的相关文件,不包含编译后的可执行文件和运行结果。(4)课程设计小结写本次课设的收获和体会。备选题目如下:算法类1、已知2000年1月1日为星期六,输入任一年的年份后,打印该年的年历。2、假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,实际的长整数m表示为:m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]其中a[0]保存该长整数的位数。完成(任选一题):(1)长整数乘普通整数。(2)长整数除普通整数。3、假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,实际的长整数m表示为:m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]其中a[0]保存该长整数的位数。完成(任选一题):(1)转换成16进制数输出。(2)转换成8进制数输出。文件类1、用文件保存一段英文文本。(1)统计各字母在文本中出现的次数(忽略大小写)。(2)查找并替换文本中的某字符串,将替换后的文本存入另一个文件。2、编写文件拷贝命令行程序,命令行格式为:HCOPYfilename1filename2。3、现有两个文本文件file1.txt和file2.txt。file1中第一列为姓名,第二列为英语成绩;file2中第一列为姓名,第二列为数学成绩。通过程序关联file2中与file1对应的姓名生成file3.txt文件。file3.txt文件第一列为姓名,第二列为英语成绩,第三列为数学成绩,第四列为平均成绩。file1.txtfile2.txtfile3.txt字符串类1、用字符数组保存一个英文句子。(1)删除该英文句子的前导空格、后导空格、句中多余空格(单词之间只留一个空格)。(2)统计句中某单词出现的次数。(3)查找并替换某单词。2、不使用库函数,编写函数strcpy和strcmp。综合类1、通讯录管理软件。通讯者信息包括:姓名、性别、手机、Email、地址。软件功能:添加、查询、删除、全部输出。2、图书管理系统设计图书信息包括:书名、ISBN号、单价、作者、存在状态、借书人姓名、性别、学号等。软件功能:图书输入、查询、删除、为借书人办理注册、办理借书手续、办理还书手续。其他类1、编写小学生数学测试软件。(1)可选择题型加,减,乘。Bob908688David808281George847479Jack647067Bob90David80George84Jack64Jim95George74David82Paul70Jack70Bob86(2)可选择每次答题的个数。(3)随机生成两个数进行运算。(4)每次输入答案后判断对错,若答案错误,给出正确答案。(5)最后给出做对题目的总个数。2、用面向对象的思想模拟简单的mp3播放器功能。功能键有:播放(Play)、停止(Stop)、快进(Fast-forward)、快退(Rewind)、音量调节(volume)、显示歌曲属性(Property)。歌曲属性包括:曲目名称(Title)、曲目长度(Duration)、艺术家(Artist)。当功能键有效时,按下功能键后显示功能名称等相关信息;当功能键无效时,按下功能键后应给出无效提示。假设目前mp3中只有一首歌曲,歌曲属性如下:(注意:1.显示歌曲属性键随时可用。2.其他键的使用应结合实际情况。)算法类:题目一:算法描述:首先要根据2000年1月1日为星期六判断出某年一月一号为星期几(注意要年份大于2000与小与2000有区别)。其次根据该年是否为闰年等,确PropertyTitle:YesterdayDuration:02:09Artist:Beatles定各月的天数。从一月一号开始一次往后排。源代码:#includestdio.h#includestdio.h#includemath.hintisleayear(intyear){returnyear%4==0&&year%100!=0||year%400==0;}intNUM(intyear,intk){intx;if(k==0||k==2||k==4||k==7||k==9||k==11)x=31;if(k==3||k==5||k==6||k==8||k==10)x=30;if(isleayear(year)&&k==1)x=29;if(isleayear(year)==0&&k==1)x=28;returnx;}intmain(){intn,k,year,m,i,j;charmon[12][4]={Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Set,Oct,Nov,Dec};printf(输入年year\n);scanf(%d,&year);if(isleayear(year)==1||year2000)n=(int)(fabs(year-2000)*365+(int)fabs(year-2000)/4)%7;//判断某年一月一号为星期几elsen=(int)(fabs(year-2000)*365+(int)fabs(year-2000)/4+1)%7;if(year2000)n=7-n;//当年份小于2000是一月一号星期几for(k=0;k12;++k){printf(%s\n日一二三四五六\n,mon[k]);if(n==0)n=n+7;elseif(n==8)n=1;m=1;for(j=0;jn-1;++j)printf();for(j=n-1;j7;++j){printf(%2d%c,m,j==6?'\n':'');m=m+1;}for(i=1;i=5;++i){for(j=0;j7&&m=NUM(year,k);++j){printf(%2d%c,m,j==6?'\n':'');m=m+1;if(m-1==NUM(year,k)){n=j+2;printf(\n);break;}}}}return0;}输入输出:题目二:算法描述:将长整数以数组的形式输进去,每位数字乘以要乘的普通整数即可源代码:#includestdio.hintmain(){inti,m,n,b[1024];printf(注意:请用数组表示一个长整数(只用输入数字长度n,以及个位数即可)\n);printf(输入长整数的长度n\n);scanf(%d,&n);printf(请输入各位数字\n);for(i=n;i=1;--i)scanf(%d,&b[i]);b[0]=n;printf(请输入要乘的整数\n);scanf(%d,&m);for(i=n;i=2;--i)printf(%d*10^%d+,b[i]*m,i-1);printf(%d\n,b[1]*m);return0;}输入输出题目三:算法描述:以数组形式输入一个长整数,从高到低数组的每两个数结合组成一个整数,用这个整数除以8,求得余数(需用数组记下)和商,如果商大于8,则继续用此数除8,直至商为小于8的数,在用此数和原数组的下一个数组成一个整数,重复上述操作,最后将每次求得的余数从后往前输出即为该长整数的八进制表示。源代码:#includestdio.hinta[1024];voidzhuanhua(intn){inti,k,b[1024];for(i=0;n=8;++i){b[i]=n%8;n=n/8;}printf(%d,n);for(k=i-1;k=0;--k)printf(%d,b[k]);}intmain(){intm,i,x,k,n,d,c[1024];printf(输入一个长整数的长度m\n);scanf(%d,&m);printf(输入长整数的个位数字\n);for(i=m;i=1;--i)scanf(%d,&a[i]);a[0]=m;for(i=0,x=a[0];x=2;--x,++i){c[i]=a[x];for(n=x;n=2;--n){d=c[i];c[i]=(d*10+a[n-1])%8;a[n-1]=(d*10+a[n-1])/8;}}if(a[1]8)printf(%d,a[1]);elsezhuanhua(a[1]);for(k=i-1;k=0;--k)printf(%d,c[k]);printf(\n);return0;}输入输出:文件类:题目一:算法描述:每次从文件中读入一个字符,利用其ASCII值和字符a的ASCII之差与数组的下标相对应,可以统计出个字母的数量(++A[c-'a'])。输入要查找的字符串,测出其长度n,利用fseek函数使得文件指针每次移动一个单位,并用fgets函数一次读入n+1个字符与要查找的字符串相比较,如果相符,则将该字符串替换,并写入另一个文件,否则只将读入的第一个字符写入文件。源代码:#includestdio.h#includestdlib.h#includectype.h#includestring.hintmain(){FILE*fp,*np;intn,i,j=0;charc,str[1024],a[1024],b[1024],A[26];if((fp=fopen(English.txt,rb))==NULL){printf(wrong\n);exit(0);}if((np=fopen(1.txt,w))==NULL){printf(wrong\n);exit(0);}for(i=0;i26;++i)A[i]=0;while(!feof(fp)){if(isalpha(c=fgetc(fp))){c=tolower(c);++A[c-'a'];}}printf(各字母数量\n);for(i=0;i26;++i)printf(%c--%d,'a'+i,A[i]);printf(\n请继续输入要查找的字符串\n);rewind(fp);gets(a);printf(请继续输入需要将其替换为:\n);gets(b);n=strlen(a);while(!feof(fp)){fseek(fp,j*sizeof(char),0);++j;fgets(str,n+1,fp);if(strcmp(str,a)==0){strcpy(str,b);fputs(str,np);j=j-1+n;}elsefputc(str[0],np);}printf(操作成功,请到1.txt文件查看\n);fclose(fp);fclose(np);return0;}输入输出:操作前:操作后:题目二:算法描述:该程序需要在命令提示符窗口下输入可执行程序名,以及读入读出文件名。程序部分只需按照简单方法,从文件中读入一个字符,并写入另一个文件中即可。源代码:#includestdio.h#includestdlib.h#includestring.hvoidmain(intargc,char*argv[]){FILE*fp1,*fp2;charc;if(argc!=3&&strcmp(filename1.txt,argv[1])!=0){printf(error\n);exit(0);}fp1=fopen(argv[1],r);fp2=fopen(argv[2],w);c=fgetc(fp1);while(!feof(fp1)){fputc(c,fp2);c=fgetc(fp1);}fclose(fp1);fclose(fp2);}输入输出:filename1.tx
本文标题:大一计算机上机题目及答案(西电专用)
链接地址:https://www.777doc.com/doc-2546955 .html