欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年程序设计基础离线作业 .pdf

    • 资源ID:39745660       资源大小:188.36KB        全文页数:16页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年程序设计基础离线作业 .pdf

    1 浙江大学远程教育学院程序设计基础(C)课程作业第章语言的基本构成程序调试题1 编辑、调试以下程序步骤 1:在 Visual C+环境下新建文件可用开始 程序 Microsoft Visual C+6.0 Microsoft Visual C+6.0 文件 新建 文件 C+Sourse File,输入文件名 ex1-1.c,程序代码如下:include /*文件预处理,包含标准输入输出库,程序可调用输入、输出函数*/int add(int x,int y)int z;z=x+y;return z;int main()int add(int,int);/*函数的说明,告诉系统在主函数中要调用add 函数 */int a,b,c;/*变量的定义*/scanf(%d%dn,&a,&b);c=add(a,b);/*函数调用 */printf(%d+%d=%dn,a,b,c);/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出 */请思考文件ex1-1.c 由几个函数构成?调用了那几个系统函数?此程序中用到了哪几个保留字?哪几个用户自定义标识符?答:文件 ex1-1.c由两个函数构成,分别是 add()和主函数main()。调用了两个系统函数,分别为 scanf和 printf。程序中用到如下几个保留字:int,return。使用了如下几个用户自定义标示符:x,y,z,a,b,c.步骤 3:编译并运行程序,程序运行时输入两个整数,20 40,观察程序运行的结果。答:程序运行结果,20+40=60 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 16 页 -2 2 编辑、调试以下程序步骤 1:在 Visual C+环境下新建文件可用开始 程序 Microsoft Visual C+6.0 Microsoft Visual C+6.0 文件 新建 文件 C+Sourse File,输入文件名 ex1-2.c 步骤 2:在文本编辑器中输入以下C 程序#include /*文件预处理,包含标准输入输出库,程序可调用输入、输出函数*/#include int main()int and(int,int);/*函数的说明,告诉系统在主函数中要调用and 函数 */int or(int,int);/*函数的说明,告诉系统在主函数中要调用and 函数 */int a,b,c;/*变量的定义*/scanf(%d%d,&a,&b);c=and(a,b);/*函数调用 */printf(%d&%d=%dn,a,b,c);/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出 */c=or(a,b);/*函数调用 */printf(%d|%d=%dn,a,b,c);步骤 3:文件 新建 文件 C+Sourse File,输入文件名ex1-2-2.c,源程序代码为:int and(int a,int b)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 16 页 -3 int c;c=a&b;return c;步骤 4:文件 新建 文件 C+Sourse File,输入文件名ex1-2-3.c,源程序代码为:int or(int a,int b)int c;c=a|b;return c;步骤 5:点击编译图标,编译程序1-2.c 步骤 4:点击执行图标,执行程序1-2.c,当程序运行时,键盘输入20 40,按回车。20 40 20&40=1 20|40=1 您可以输入其它的整数,观察程序的执行结果。第章输入输出程序设计1 用 printf 输出一个中空的五角星。2 仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。3 从键盘输入十六进制整数,转化为八进制数输出。4 只定义两个整型数据并赋值,实现两个整型数的互换。5 从键盘上输入一个整数,分别输出8、16 进制数的程序。6 从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。7 以下程序输出结果是()。#include void main()int i=010,j=10;printf(%d,%dn,+i,j-);8 运行程序,屏幕提示“您是一个学生吗”,您输入?y?或?n?进行回答,屏幕输出您的选项。9 从键盘输入一个角度x,求 10*sin(x)的值。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 16 页 -4 第章循环程序设计1以下 for 语句的循环次数是多少?int i,j=3;for(;i=j;i-,j-)printf(%d,i);2下面的语句显示输出6 行 6 列的整数数组h 的主对角线上的所有元素,请补充完整:for(int i=0;i ;)printf(%d,)3写出以下程序运行的结果,此程序实现了什么功能?#include void main()int a10=2,4,0,-5,10,6,-8,9,6,7;int i,count=0;for(i=0;i10;i+)if(ai=0)count+;else continue;printf(%dn,count);4写出以下程序的功能。#include void main()int a10=2,4,0,-5,10,6,-8,9,6,7,tmp,k;for(k=0;k10/2;k+)tmp=ak;ak=a10-k-1;a10-k-1=tmp;5写出以下程序运行后的输出结果。#include void main()int i,j;for(i=0;i6;i+)for(j=0;ji;j+)printf();for(j=0;j2*(5-i)-1;j+)printf(*);printf(n);6请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。(1)#include void main()名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 16 页 -5 int i,s;i=1;s=0;while(i=100);s=s+i;i+;printf(“1+2+3+.+99+100=%dn”,s);(2)#include void main()int i,s;i=1;s=0;while(i=100)s=s+i;i+;printf(“1+2+3+.+99+100=%dn”,s);(3)#include void main()int i=1,s;while(i=100);s=s+i;i+;printf(“1+2+3+.+99+100=%dn”,s);7输入一个基数,例如输入9,输出为:求1*3*,*9 的值。输出为:1*3*5*7*9=945 8输入一个510 之间的整数n,求 1!+2!+3!+n!。例如输入 5,输出为:1!+2!+3!+5!=153 9在屏幕上输出以下内容1 12 123 1234 12345 123456 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 16 页 -6 1234567 12345678 123456789 10求 2+4+6+98+100 的和,用多种for 表达式来完成。11输入一行字符,统计它有多少个字母?第章分支程序设计1输入若干整数给x,使用 if 语句输出x 的绝对值,当输入0 时结束。2输入一批数,输出比相邻数大的数,当输入0 时结束。3将输入字符的大写字符转换成小写字符输出,小写字符原样输出。4输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。5编写程序,计算分段函数:10101110325xxxxxxy6根据输入的百分制按五分制的成绩输出。百分制与五分制之间的关系见下表。百分制五分制90 100 5 80 89 4 70 79 3 60 69 2 60 1 7、用 switch 完成:读入一个实数x,再输入一整数,若输入是 1,则计算 sin(x),若输入 2,则计算 cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。8、用 switch 完成:输入星期1 到星期 5,输出它们对应的颜色星期 1:blue 星期 2:red 星期 3:white 星期 4:yellow 星期 5:green 9、用 switch 完成:从键盘输入A、B、C、D 四个等级中的一个,转化输出等级输出名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 16 页 -7 A 优秀B 良好C 中等D 及格E 不及格第章数组及其应用.从键盘输入12 个数,分别为:900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。.采用遍历查找,在数组aSIZE=2,3,20,58,72,76,78,87,90,900中,找出偶数。.采用折半查找,在数组 aSIZE=2,3,20,58,72,76,78,87,90,900中,找到 87,然后进行删除。第章函数及其应用练习与实践一、阅读程序,写出程序运行的结果。1写出以下程序的执行结果。#include float aver(int a)int k,sum=0;float ave;for(k=0;k10;k+)sum+=*(a+k);ave=(float)sum/10;return (ave);int main()float ave;static b=78,89,98,76,78,45,88,81,92,85;ave=aver(b);printf(ave=%fn,ave);提示:数组 b的首地址传递给形参a,*(a+k)就是数组元素bk.2阅读程序,写出程序的执行结果。#include void abc(char str)int a,b;for(a=b=0;stra!=0;a+)if(stra!=c)strb+=stra;strb=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 16 页 -8 int main()char str=abcdef;abc(str);printf(str=%s ,str);return 0;提示:数组 str的首地址传递给形参str,stra就是实参中的数组元素stra,当数组元素不为 c 时进行复制。3写出以下程序的执行结果。#include int sort(int b,int n,int x)int k;for(k=n-1;k=0;k-)if(bkx)bk+1=bk;else break;bk+1=x;return 0;int main()int i,j;static int a5=8,5,4,1,6;int b8;b0=a0;for(i=1;i5;i+)sort(b,i,ai);for(j=0;j=i;j+)printf(%d ,bi);printf(n);return 0;提示:循环体中if(bkx)bk+1=bk;else break;如果 bkx成立,执行语句 bk+1=bk;表示数组元素 b向后移,不满足时插入 x,即从大到小排序。4写出以下程序的执行结果。#include int fun(int x)int p;if(x=0|x=1)return 3;else p=x-fun(x-2);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 16 页 -9 return p;int main()printf(n%d,fun(9);return 0;提示:fun(9)=9-fun(7),.,fun(1)=3 5写出以下程序的执行结果,并说明其作用是什么?#include int f(int n)if(n=10)f(n/10);printf(%d,n%8);return 0;int main()f(1234);printf(n);return 0;提示:在函数 f 中,程序运行借助了堆栈,依次入栈的数据分别为1234、123、12,最后n=1,n对8取余输出,然后数据依次出栈对8取余输出。二、程序设计1编写一个函数,计算x 的 n 次的平方。提示:for(y=1,i=0;in;i+)y=y*x;2编写一个函数,计算对角线上元素之和。提示:for(s=0,i=0;in;i+)for(j=0;jn;j+)if(i=j)s=s+aij;3编写一个函数int invert(char str ),将一个字符串的内容颠倒过来。提示:先求字符串str 的长度 n,for(i=0;i=?0?&stri=?9?)s=s*10+stri-,0?;6用递归的方法编写一个函数sum(int n),求 1 至 n 的累加和。提示:f(n)=n+f(n-1)第章变量存储类型与多文件系统1写出以下程序的执行结果。#include int x;void fun()printf(%d,x+);void main()int x=1;extern int x;printf(%d,+x);fun();提示:在函数 fun 中及语句块 extern int x;printf(%d,+x);中使用的 x是外部变量,在语句块:if(x=1)int x=2;printf(%d,x+);中使用的是刚刚定义x=2 的变量。2写出以下程序的执行结果。#include int kk()int x=4;static int y;y=5;x*=2;y*=2;return(x+y);void main()int j,s=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 16 页 -11 for(j=0;j 2;j+)s=kk();printf(s=%d n,s);提示:虽然两次调用函数kk(),但变量定义语句static int y;只执行一次,而变量赋值语句每次都要执行。3写出以下程序的执行结果。#include int t()int x=0;static int y=4;y+=+x;return x+y;void main()printf(%d n,(t(),t();提示:语句 printf(%d n,(t(),t();中(t(),t()属于“,”号表达式,即两次调用函数 t(),在函数 t()中,y为静态内部变量,因而语句static int y=4;只执行一次。第章文件1下述程序从终端读入文本(用$作为文本结束标志)复制到一个名为out.dat 的新文件中,请补全程序。#include int main()FILE *fp;char cx;if(fp=fopen(1)=NULL)return 0;while(cx=getchar()!=$)fputc(cx,fp);(2);return 1;提示:第 1个空格是打开文件读,第2个空格是关闭文件。2下面的程序用来统计文件中字符的个数,请补全程序。#include int main()FILE*fp;long num=0;if(fp=fopen(fname.dat,r)=NULL)printf(Cant open file!n);exit(0);名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 16 页 -12 while(1)fgetc(fp);num+;printf(num=%dn,num);fclose(fp);return 1;提示:第 1个空格表示文件没有结束,循环将持续。.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符,依次存放到该文件中,用#作为结束输入的标志,请补全程序。#include void main()FILE*fp;char ch,fname10;printf(Input the name of filen);gets(fname);if(fp=)=NULL)printf(Cannot openn);exit(0);printf(Enter datan);while(ch=getchar()!=#)fputc(,fp);fclose(fp);提示:文件名是从键盘读入的,因而文件名是用变量表示的,文件是打开写。4下述程序从一个二进制文件中读入结构体数据,并把读出的数据显示在屏幕上。请补全程序。#include struct rec int a;float b;void recout(FILE *fp)struct rec r;do fread(1),sizeof(struct rec),(2),fp);if(3)(4);printf(%d,%f,r.a,r.b);while(1);void main()FILE *fp;fp=fopen(file.dat,rb);recout(fp);fclose(fp);名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 16 页 -13 提示:在 fread语句中,(1)中为存放所读出结构数据的内存地址,当然此数据是赋给变量r,(2)中是读出结构体变量数据的个数,(3)是与循环中止有关的判断,(4)为中止循环。.从键盘输入一个字符串,并逐个将字符串的每个字符传送到磁盘文件l1.txt 中,字符串的结束标记为#。有一文本文件l1.txt,请编写一个程序将文件中的英文字母及数字字符显示在屏幕上。提示:把文本文件l1.txt 中的数字字符复制到文本文件l2.txt 中。x 从 0 到 360 度的 sin(x)值写入到文件l6.txt 中,并将大于0 的值显示在屏幕上。第章指针与数组程序阅读与填空题1分析下列程序,输出结果是()。#include void main()int *p1,x=10;float *p2,y=2.5;p1=&x;p2=&y;printf(%d,%fn,+(*p1),(*p2)+);提示:+都作用在内容上,前一项是先+再输出,后一项是先输出再+。2下列程序输出结果是()。#include void main()int a=1,2,3,4,5,6,*p=a;printf(%d,%dn,*p,*(p+3);提示:语句*(p+3)+=2;指p+3 的地址上的内容加2,然后输出 p及p+3 的地址上内容。3下列程序输出结果是()。#include void main()int a=1,2,3,4,5,6;int x,y,*p;p=&a0;x=*(p+2);y=*(p+4);名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 16 页 -14 printf(*p=%d,x=%d,y=%dn,*p,x,y);提示:p+2是指&a2。4下列程序输出结果是()。#include void main()int a=10,20,30,40,50,60;int *p;p=a;printf(*%d,n,*p);printf(*%d,n,*(+p);printf(*%d,n,*+p);printf(*%d,n,*(p-);p+=3;printf(*%d,%d n,*p,*(a+3);提示:*(+p)、*+p 都表示指针 p向大地址方向移动,然后再取内容,要注意的是后一语句的输出受前一语句的影响。5下列程序输出的结果是()。#include void del(char *str)int a,b;for(a=b=0;stra!=0;a+)if(*(str+a)!=c)*(str+b+)=*(str+a);strb=0;void main()char str=abcdef;del(str);printf(str=%s ,str);提示:在函数 del 中str+a地址上的内容不为字符 c 时不复制,实际上是指删除指针str所指的字符串中的字符 c。6以下程序输出的结果是()。#include#include void fun(char *w,int m)char s,*p1,*p2;p1=w;p2=w+m-1;while(p1p2)s=*p1+;*p1=*p2-;*p2=s;void main()char a =ABCDEFG;fun(a,strlen(a);puts(a);名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 16 页 -15 提示:当执行 s=*p1+;语句时,指针 p1 所指的地址上内容赋给s时,指针 p1 后移,语句*p1=*p2-;指针 p2所指的内容赋给p1所指的地址上后,p2前移后再执行*p2=s语句。7以下程序输出的结果是()。#include void main()int a33=2,0,8,4,6;int i,*p=&a00;for(i=0;i3;i+)if(i=0)aii+1=*p+1;else +p;printf(%d,*p);printf(n);提示:当 i=0 时,把*p+1 值 3赋给 a01,然后输出 2,当 i=1 时,+p 后p指向 a01,输出a01,当 i=2 时,+p,指针 p指向 a02。8阅读以下程序,把应填的内容写入空格处。本函数是应用二分法查找key 值,数组中元素值按递增排序,若找到key 则返回对应的下标,否则返回-1。int binary(double a,int n,double key)int low,high,mid;low=0;high=n-1;while (1)mid=(low+high)/2;if(keyamid)(3);else (4);return(-1);提示:用 low、high、mid 分别表示数组 a低地址端、高地址端、中间元素的下标,只要低地址端下标小于高地址端下标循环一直持续,如果中间元素大于所查找的数,表示所查找的数在以low、high为边界的左侧,如果中间元素小于所查找的数,表示所查找的数在以low、high 为边界的右侧,如都不是表示已找到。9 下述函数从一个数组v 中删除值为key 的元素。数组的元素个数由指针n 指明,请填空。名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 16 页 -16 void delnode(double v,int*n)int i,j,k=-1;for(i=(1);(2);i-)if(vi=key)k+;for(j=i;(3);j+)vj=vj+1;if(k=0)*n=(4)提示:由于在第1个for循环中为 i-,因而循环一定是从数组下标最大的元素*n-1开始,循环的条件是 i=0,如果找到要删除的元素,后面的元素依次向前移,一直移到最后 v*n-1,k标记删除的次数,*n 存放最后数组中元素的个数。二、编程题1用指针的方法编写一函数,交换从键盘读入的两个整型数a,b。提示:void swap(int*p1,int*p2)int temp;temp=*p1;*p1=*p2;*p2=temp;2编写一函数void invert(char str)将一个字符串的内容颠倒过来。提示:定义两个字符指针,测试字符串的长度,一个指针p1 指向字符串的首地址,另一个指针p2指向字符串最后一个字符,当while(p2p1)满足时交换两个指针所指的内容。3编写一函数int index(char*s,char*t)检查字符串 s 中是否包含字符串t,若包含则返回t在 s 中的开始位置(下标值),否则返回-1。提示:先计算t 的长度 n for(i=0;si;i+)for(j=0;si+j=tj;j+)if(j+1=n)return i;4编写函数,判断一字符串是否回文。若是回文,函数返回值为1;否则返回值为0。(回文是按顺序读和倒读都一样的字符串)。提示:设字符指针p1、p2 分别指向字符串的第1 个字符与最后一个字符,考虑下列程序段:while(p2p1)if(*p1=*p2)p1+;p2-;else return 0;if(p1p2)return 1;名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 16 页 -

    注意事项

    本文(2022年程序设计基础离线作业 .pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开