版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、青岛科技大学信息科学技术学院C语言程序设计实验指导书目录实验1C语言入门及选择结构.1实验1.1VisualC+6.0开发环境.1实验1.2C程序快速入门.8实验1.3算术运算与赋值运算.12实验1.4逻辑运算及if语句.18实验1.5switch选择结构.24实验2循环结构及数组(共8学时).28实验2.1循环结构(2学时).28循环结构程序设计补充.33实验2.2数组一:一维数组.37实验2.3数组二:二维数组.44实验2.4数组三:字符数组.46实验3:函数与自定义数据类型50实验3.1函数一:函数的定义、调用和声明50实验3.2函数二:函数的参数传递256实验3.3函数三:函数的嵌套和
2、递归258实验3.4自定义数据类型(2学时).60实验4:指针(共6学时)62实验4.1指针一:指针的定义及运算.62实验4.2指针二:指向数组的指针.68实验4.3指针三:用指针操作字符串272实验1C语言入门及选择结构实验1.1VisualC+6.0开发环境一、实验目的1. 熟悉c语言的系统环境,掌握在集成环境中编辑、编译、连接和运行C语言程序的方法。2. 掌握C语言源程序的结构特点与书写规范。二、实验学时数2学时三、实验步骤及任务(一)VC+6.0集成环境(1)运行VC+6.0a. 双击桌面上的VC+6.0快捷方式,运行VC+6.00b. 双击"C:MicrosoftVisua
3、lStudioCommonMSDev98BinMSDEV.EXE",运行VC+6.0。(2)认识VC+6.0菜单栏菜单栏标题栏的左侧显示当前的文件名,右侧有最小化,最大化和关闭三个按钮。菜单栏包含了开发环境中几乎所有的命令,其中一些常用的命令还被排列在工具栏中。工具栏上的按钮提出和一些菜单命令相对应,提供了经常使用的命令的一种快捷方式项目工作区窗口包含有ClassView和FileView两个页面。(3)建立C语言源文件,单击文件-新建,单击文件选项卡,新建一个C+SourceFile,选择存储位置(新建建立的文件夹D:test),输入文件名“myhello.c”,进入D:test,
4、可以看到新建的文件myhello.c。(4)输入C语言源程序,在打开的程序编辑窗口输入C语言源程序。SMkrasoflual+|E3|回|盘宜蹴BjMkEjItA®IffiB阳KCDB囲型凹s"电a西習石厂二打町1+乔呼1T军国霜°j的列1r二rf:!(5) 编译点击组建-编译,或按ctrl+F7进行预编译,或用工具栏工具编译,编译成功生成.obj目标文件(myhello.obj),显示在输出窗口。(6) 连接点击组建-编译命令,或按F7,或点按连接按钮执行连接操作。连接成功生成扩展名为.exe的文件。(7) 执行点击组建-执行命令,或按ctrl+F5,或点按执行
5、按钮完成“执行”操作。完成后界面如下,到目前为止一个简单的C程序创建成功。C41nyhfrlQi-VirfUAlC+口1医IIe|Stt®疋:MrQtjIlStEJ叵蚩iEJI*<D园口血Hlt-iDU0%匚回诸响厂zl«II窗陲晒E1+ftip:|Gloilialn|&11g:jj£fillnilrnernbKrr*|*rrinin护.睜凹叫工1Classes»J5.|REC|COL|WfiK»执行工具结果输出窗体d(8) 关闭工作空间程序运行结束后,如果想输入一个新程序,我们需要将当前的程序关闭,选择菜单栏中的“文件关闭工作空
6、间”即可。(9) 常用功能键及其意义为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令来控制操作。下面是一些最常用的功能键,希望在实验中逐步掌握。操作类型功能键对应菜单含义文件操作Ctrl+NFile|New创建新的文件、项目等Ctrl+OFile|Open打开项目、文件等Ctrl+SFile|Save保存当前文件编辑操作Ctrl+XEdit|Cut剪切Ctrl+CEdit|Copy复制Ctrl+VEdit|Paste粘贴Ctrl+ZEdit|Undo撤消上一个操作Ctrl+YEdit|R
7、edo重复上一个操作Ctrl+AEdit|SelectAll全选DelEdit|Del删除光标后面的一个字符建立程序操作Ctrl+F7Build|Compilercurrentfile编译当前源文件Ctrl+F5Build|Runexe运行当前项目F7Build|Buildexe建立可执行程序F5Build|StartDebugging启动调试程序调试F5Debug|Go继续运行F11Debug|Stepinto进入函数体内部shift+F11Debug|Stepout从函数体内部运行岀来F10Debug|Stepover执行一行语句F9j设置/清除断点Ctrl+F1ODebug|Runtoc
8、ursor运行到光标所在位置shift+F9D(?bug|QuickWatch快速查看变量或表达式的值Shift+F5Debug|Stopdebugging停止调试要求:请用最简单的语言描述如何新建一个C语言的源文件,如何编辑程序,如何编译程序,如何连接程序,如何运行程序,程序结果然后显示?(二)阅读程序要求:编辑下面源程序,并且读懂与分析运行程序,上机运行程序,并与分析结果相对比。1. 输入并运行以下程序,观察运行结果。()#inelude<stdio.h>intmain()printf("printf("*n");printf("Hell
9、oworld!n");printf("printf("*return0;分析结果运行结果思考:如何采用一个输出(printf)函数调用实现此输出结果2输入并运行以下程序,观察运行结果。()#include<stdio.h>intmain()inta,b,sum,minus;a=456;b=123;sum=a+b;minus=a-b;printf("a+b=%dna-b=%dn",sum,minus);return0;分析结果printf中删除a+b=和a-b=输出结果:printf中删除第一个n:输出结果:运行结果printf中删除
10、a+b=和a-b=输出结果:printf中删除第一个n:输出结果:(三)完成程序要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。1. 求(a-b)xc的值。(设a=33,b=22,c=11)()#include<stdio.h>intmain()inta,b,c;a=33;c=11;printf("%dn",(a-b)*c);return0;2. 求圆的面积。()#include<stdio.h>#definePI3.14intmain()floatr,area;printf("nEnterrvalue:
11、");scanf("%f",&r);area=PI*r*r;printf("narea=%fn",);return0;(四) 调试程序要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。()行号#include<stdio.h>1. intmain()2. intx;3. x=5,y=8;4. printf("n%d,%d%dn",x,(x+5)*2,y);5. return0;6. 错错误在行应改为:调试正确后的运行结果输出结果:(五) 编写程序1. 请用C程序告诉大家你来自哪里?
12、有什么爱好?()2. 输出以下图案:()(六) 分析与讨论1 .记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因。2. 总结C程序的结构和书写规则。实验1.2C程序快速入门一、实验目的1. 掌握标识符、变量与常量的定义;2. 掌握C语言数据类型的种类和作用;3. 熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;4. 掌握不同的类型数据之间赋值的规律;5. 掌握输出、输入函数的使用及格式控制;6. 进一步熟悉C程序语句和程序的结构特点,学习简单程序的编写方法。二、实验学时数2学时三、实验步骤(一)阅读程序1
13、. 输入并运行以下程序,观察运行结果。#inelude<stdio.h>intmain()charc1,c2;c仁97;c2=98;printf("%c,%cn",c1,c2);return0;(1)在第五行后面加入以下printf语句,并运行。printf("%d,%dn",c1,c2);(2)在(1)的基础上,将第三行改为以下语句,并运行分析结果字符型97,98对应a,b运行结果abintc1,c2;分析结果(3)在(1)的基础上,将第四行改为以下语句,并运行运行结果仍为a,b若改为%d则为97,98c1=321;c2=400;分析结果运
14、行结果A?2.分析并运行此程序,当输入的数据为10时,下面程序的运行结果#include<stdio.h>intmain()floatx,y;scanf("%f",&x);printf("n2.4*x-1/2=%f",2.4*x-1.0/2);printf("nx%2/5-x=%f",(int)(x)%2/5-x);printf("n(x-=x*10,x/=10)=%dn",(x-=x*10,x/=10);return0;分析结果运行结果2.4*x-1/2=23.500000x%2/5-x=-1
15、0.000000(x-=x*10,x/=10)=0(二)完成程序要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。1求任意输入字符的ASd码。#include<stdio.h>intmain()chara;intb;/变量的定义printf(“请输入一个字符:”);scanf(“%c,&a);b=(int)a;printf(“nn%c的ASCH码为dn”,a,b);return0;2、输出任意一个十进制数对应的八进制,十六进制数。#include<stdio.h>intmain()inta;scanf(“%d,&a);p
16、rintf(“n%d(10),%o(8),%x(16)n”,a,a,a);return0;(三)调试程序要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。1. 行号#include<stdio.h>1 intmain()2 intu=v=89;3 printf(U'=%d,v=%dn",u,v);4 return0;5 错错误在1行应改为:调试正确后的运行结果输出结果:2. 下面的程序试图计算由键盘输入的任意两个整数的平均值:行号#include<stdio.h>1 intmain()2 3 intx,y,a;4 scanf(&
17、quot;%x,%y",&x,&y);5 a=(x+y)/2;6 printf("Theaverageis%d:n",a);7 return0;8 (四)编写程序错错误在行应改为:调试正确后的运行结果输入数据2,61,4-1,-3-2,42,0输出结果:1.编写一个程序,从键盘输入某电视机的价格,再输出该价格打7折后的价格。分析:必须设计一个实型变量接受从键盘输入的值,输入、输出应该有提示。#include<stdio.h>intmain()doublea,b;printf("电视机的价格:");scanf(&quo
18、t;%lf",&a);b=0.7*a;printf("打折后的价格:%lf",b);return0;2.编写一个程序,求一元一次方程ax+b=0的根。分析:a、b的值从键盘输入,输入时a的值不能为0(无解),方程的根即x的值为:-b/a实验1.3算术运算与赋值运算一、实验目的1. 掌握算术运算符和算术表达式。2. 熟练掌握赋值运算符、复合的赋值运算符3. 熟练掌握自增1和自减1运算符。4. 熟练掌握顺序结构的程序设计,能够编写简单的应用程序二、实验学时数2学时三、实验步骤(一)分析程序分析以下程序运行的结果#include<stdio.h>in
19、tmain()inti,j,m,n;i=8;j=10;m=+i;n=j+;printf("%d,%d,%d,%dn",i,j,m,n);return0;分析结果运行结果将第6、7行改为:m=i+;n=+j;(3)程序改为:分析结果运行结果#include<stdio.h>intmain()inti,j,m=0,n=0;i=8;j=10;m+=i+;n-=-j;printf(“%d,%d,%d,%dSn);return0;分析结果运行结果1.输入并运行以下程序,观察运行结果。#include<stdio.h>intmain()inta=17;float
20、u=1234.567;printf("%d,%7d,%-7dn",a,a,a);printf("%f,%7.2fn",u,u);return0;分析结果运行结果2.输入并运行以下程序,观察运行结果。#include<stdio.h>intmain()inta,x,y;x=(a=2,6*2);y=a=2.6*a;printf(“x=%d,y=%dr”,x,y);return0;3阅读以下程序,若输入的数据形式为251310,输出结果为:分析结果运行结果#include<stdio.h>intmain()intx,y,z;scanf(
21、"%d%d%d",&x,&y,&z);printf("x+y+z=%dn",x+y+z);return0;(二)完成程序分析结果运行结果要求:按照给定题目要求,参照出现的语句,填写程序空白处。1.键盘输入任意一个小写字母,将其转换成大写字母,然后输出#include<stdio.h>intmain()charc1,c2;c1=getchar();c2=;putchar('n');putchar(''');putchar(c2);putchar(''');r
22、eturn0;(ab)41. 求ab的值。(设a=25,b=5)#include<stdio.h>intmain()floata=25,b=5;floatc;c=;printf("c=%fn",c);return0;(三)调试程序要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果1. 行号#include<stdio.h>intmain()1 inti,k;i=8;2 k=5*l*l;printf("%dn",k);6 return0;错错误在行应改为:调试正确后的运行结果2. 该程序输入一个三位数,
23、然后进行个位和百位的置换,如234,转换成432行号#include<stdio.h>1 intmain()2 intn,a,b,c,m;3 scanf("%d",n);4 a=n%10;5 b=(n/10)%10;6 c=(n/100)%10;7 m=100*a+10*b+c;8 printf("%d=>%dn",n,m);9 return0;10 错错误在行应改为:调试正确后的运行结果(四)编写程序1. 编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位2. 编程从键盘输入两个整数分别给变量a和b,分别写出不借助于其他变
24、量和借助于其他变量的条件下,将变量a和b的值实现交换。1. 编写一个程序,其功能为:从键盘上输入一个浮点数,然后分别输出该数的整数部分和小数部分分析:若输入的浮点数存入fd变量,则可用强制类型转换运算符,将输入的该数的整数部分取出:zhs=(int)fd;2. 从键盘输入三角形的三条边a,b,c的值,计算三角形的面积,程序框架如下:#include“sdtio.h”#include“math.h”main()定义变量从键盘输入a,b,c三条边的值计算s的值计算三角形面积输出结果1. 编程序计算数学表达式:b2-4ac,a,b,c的值从键盘输入。2. 编程序计算298秒是几分几秒。提示:设int
25、x=298;再定义两个变量存放分(m)、秒(s)值;贝m=x/60;s=x%60;3. 从键盘输入一个三位数,求各位数字之和。例如,输入的三位数为358,贝输出结果为3+5+8=16。提示:题目的关键是要求出该数的个、十、百位上的数字,可利用C语言整数相除,结果仍为整数的特点。若设该数为data,它的个、十、百位为g、s、b,贝Ub=data/100;s=(data-b*100)/10;g=data%10(三)编写程序1. 用赋值语句表达:a的值为2,b的值比a多2,c的值比b的值多2,并输出a,b,c的结果。请编出完整程序验证。2. 假设变量a和b均为整型,以下语句可以不借助任何变量把a、b
26、中的值进行交换。请先填空,再编出完整程序验证。a+=;(a为a、b之和)b=a-;a-=;实验1.4逻辑运算及if语句一、实验目的1. 掌握关系、条件、逻辑运算符及关系、条件、逻辑表达式2. 掌握逗号运算符和逗号表达式。3. 熟练掌握三种单分支、双分支和多分支if语句4. 掌握if语句的嵌套。二、实验学时数2学时三、实验步骤(一)阅读程序分析程序运行结果:#include<stdio.h>intmain()inti,j,m=0,n=0;i=8;j=10;m+=i+;n-=-j;printf(“%d,%d,n”,(i,j,m),n);return0;分析结果运行结果2.输入并运行以下
27、程序,观察运行结果。#include<stdio.h>intmain()intx=10,y=9,a,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;printf("a=%d,b=%d,c=%dn",a,b,c);return0;3、若x=12,则以下程序运行的结果是分析结果运行结果#include<stdio.h>intmain()intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("y=%dn",y);return0;分析结果运行结果三、实验步骤
28、(一)阅读程序1.输入并运行以下程序,观察运行结果。#include<stdio.h>intmain()inta,b,c;a=10;b=60;c=30;if(a>b)a=b;b=c;c=a;printf("a=%d,b=%d,c=%dn",a,b,c);return0;分析结果运行结果2.输入并运行以下程序,观察运行结果。#include<stdio.h>intmain()intx=60,a=30,b=20;intv1=3,v2=8;if(a<b)if(b!=15)if(!v1)x=1;elseif(v2)x=10;x=-2;printf
29、(“dn”,x);return0;分析结果运行结果(二)完成程序要求:按照给定题目要求,参照出现的语句,填写程序空白处。1. 输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变,请在填写正确内容。#include<stdio.h>intmain()charch;scanf("%c",&ch);if()ch=ch+32;elseif(ch>='a'&&ch<='z');printf("%cn",ch);return0;
30、1. 以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型,请在填写正确内容。#include<stdio.h>#include<math.h>intmain()floata,b,c;floats,area;seanf(“%f,%f,%f”,&a,&b,&c);if()s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“三角形的面积为:%fn”,area);if()printf(“等边三角形n”);elseif()printf(“等腰三角形n”);elseif(a*
31、a+b*b=c*c)|(a*a+c*c=b*b)|(c*c+b*b=a*a)printf(“直角三角形n”);elseprintf(“一般三角形n”);elseprintf(“不能组成三角形n”);return0;(三)调试程序要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。1.以下程序实现求分段函数。y=-1x>9x*(x+2)3<x<=92*x-1<x<=3x-1x<=-1#include<stdio.h>intmain()1 intx,y;2 scanf(“%d,&x);3 if(3<x<
32、;=9)y=x*(x+2);4 elseif(-1<x<=3)y=2*x;5 elseif(x<=-1)y=x-1;6 elsey=-1;7 printf(“dn”,y);8 return0;错错误在行应改为:调试正确后的运行结果输入数据:421-310输出结果:2.有一函数关系如下:x-3x<0y=0x=0-x+3x>0以下程序表示上面的函数关系行号#include<stdio.h>intmain()intx,y;1 scanf("%d",&x);y=x-3;2 if(x!=0)if(x>0)y=x+3;3 else
33、y=x;printf("y=%dn",y);4 return0;错错误在行应改为:调试正确后的运行结果输入数据:50-3输出结果:(四)编写程序1输入某学生的成绩(成绩为100分制,可以为89.5,如果输入的成绩不在0-100之间,请给出出错提示。),经处理后给出学生的等级,等级分类如下:90分以上(包括90):A80至90分(包括80):B70至80分(包括70):C60至70分(包括60):D60分以下:E2输入一个三位的正整数,判断该数是否为水仙花数。(水仙花数的是指一个三位数,其各位数字的立方各等于该数本身。例如:153是一个水仙花数,因为153=1A3+5A3+3
34、A3)1某邮局对邮寄包裹有如下规定:若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收取手续费0.5元,再加上根据下表按重量weight计算的邮资,请编写程序计算某包裹的邮寄资费。2. 输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格成绩的个数。实验1.5switch选择结构一、实验目的1. 熟练掌握switch语句。2. 掌握省略break的case语句的执行方式。3. 比较if语句的嵌套及if、switch多路分支语句。二、实验学时数2学时三、实验步骤(一)阅读程序1. 输入并运行以下程序,观察运行结果。#include<stdio.h
35、>intmain()inti=1;switch(i)case1:printf("%dt",i+);case2:printf("%dt",i+);case3:printf("%dt",i+);case4:printf("%dt",i+);printf("ni=%dn",i);return0;分析结果运行结果(二)完成程序要求:按照给定题目要求,参照出现的语句,填写程序空白处。1.以下程序实现的功能是:广1x<0,请将以下程序补充完整y=0x=0*1x>0#include<s
36、tdio.h>intmain()intx,y;scanf(“%d,&x);switch(x<0)case1:;break;_case0:switch(x=0)case1;y=0;break;case0:y=1;printf(“y=%dn”,y);return0;2用switch结构编写一个处理四则运算的程序。#include<stdio.h>intmain()floatv1,v2;charop;printf(“pleasetypeyourexpression:n”);scanf(“f%c%”,&v1,&op,&v2);switch()ca
37、se+':printf(“%1.0f+%1.0f=%1.0fn”,v1,v2,v1+v2);break;case':printf(“%1.0f-%1.0f=%1.0fn”,v1,v2,v1-v2);break;case*':printf(“%1.0f*%1.0f=%1.0fn”,v1,v2,v1*v2);break;case/:if()printf(“除数为零n”);break;elseprintf(“%1.0f/%1.0f=%1.0fn”,v1,v2,v1/v2);break;default:printf(“运算符错误n”);return0;3输入某年某月某日,判断这
38、一天是这一年的第几天?程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。#include<stdio.h>intmain()intday,month,year,sum,leap;printf("npleaseinputyear,month,dayn");scanf("%d,%d,%d",;switch(month)/*先计算某月以前月份的总天数*/case1:;break;case2:sum=31;break;case3:sum=59;break;case4:su
39、m=90;break;case5:sum=120;break;case6:sum=151;break;case7:sum=181;break;case8:sum=212;break;case9:sum=243;break;case10:sum=273;break;case11:sum=304;break;case12:sum=334;break;default:printf("dataerror");break;sum=sum+day;/*再加上某天的天数*/if(year%400=0|()/*判断是不是闰年*/leap=1;elseleap=0;if()/*如果是闰年且月
40、份大于2,总天数应该加一天*/Jprintf("Itisthe%dthday.n",sum);return0;(三)编写程序1. 以下4种水果(1苹果2梨3桔子4芒果)单价分别是2.0元/公斤,2.5元/公斤,3.0元/公斤,4.5元/公斤,请输入水果编号、重量,计算应付款。2从键盘输入1-7,显示输出该日期对应的英文日期(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,sunday)名称。3. 己知某公司员工的保底薪水为500,某月所接工程的利润p与利润提成的关系如下:(计量单位:元)(选作)1编写程序实现运输公司对用户
41、计算运费。路程(s)越远,每公里运费越低。p<=1000没有提成1000<p<=2000提成10%2000<p<=5000提成15%5000<p<=10000提成20%10000<p提成25%2考虑一个自动售货机,提供如下选择:1 矿泉水巧克力2 爆米花果汁3 显示购买商品的数量退出系统实验2循环结构及数组(共8学时)实验2.1循环结构(2学时)2.1.1 while循环和dowhile循环及二者比较for循环循环嵌套一、实验目的1. 掌握while,do-while,for循环语句的使用与区别;掌握循环条件、循环体、循环终止等循环要素;4. 理
42、解循环执行过程。5. 熟练使用循环语句编写程序。二、实验学时数2学时三、实验步骤(一)阅读程序#include<stdio.h>intmain()inta=2,b=8;while(b-vO)b-=a;a+;printf(“a=%d,b=%dn,a,b);return0;分析结果运行结果2.#include<stdio.h>intmain()intx=2,y=6,z=3;doy=y-1;while(z->0&&+x<5);printf(“x=%dty=%dtz=%dn”,x,y,z);return0;分析结果运行结果2. #include<
43、;stdio.h>intmain()intn=0;while(*=2)n+;printf("%dn",n);return0;分析结果运行结果(二)完成程序要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。以下程序的功能是计算正整数2345的各位数字平方和,请在上填写正确内容。#include<stdio.h>intmain()intn,sum=0;n=2345;dosum=sum+while(n);printf("sum=%dn",sum);return0;1. 以下程序的功能是计算S=2+4+8+16
44、+128,请在填写正确内容。#inlcude<stdio.h>intmain()inta,s,n,count;a=2,s=0,n=1,count=1;while(count<=7);s=s+n;;printf(“s=%dn”,s);return0;(三)调试程序要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。1.以下程序输出100(包括100)以内的数,每行输出10个。行号#include<stdio.h>intmain()1intk=100;2while(k=O)3printf("%d,",k);4k-;5if(k%
45、10=0)printf("n");67return0;8错错误在5行应改为:if(k%10>0)printf("n");1. 下面程序的功能是计算n!。行号#include<stdio.h>intmain()1 inti,n,s=1;printf("Pleaseentern:");2 scanf("%d",&n);for(i=1;i<=n;i+)6 s=s*i;printf("%d!=%dn",n,s);7 return0;错错误在行应改为:调试正确后的运行结果输
46、入数据1591215输出结果3. 以下程序输出1-100的数字行号#include<stdio.h>intmain()1 inti=100;2 while(1)3 i=i%100+1;5 printf(%4d,“i);6 if(i%10=0)printf('n”);7 if(i>100)break;8 9 return0;10 错错误在行应改为:(四)编写程序1小明妈妈给他买了若干块巧克力,小明第一天吃了一半,还不过瘾,又多吃了一块,第二天又将剩下的巧克力吃掉一半,又多吃一块,以后每天都吃了前一天剩下的一半零一块。到第10天再想吃时,只剩下一块了。编程计算小明妈妈总共
47、给小明买了多少块巧克力?2. 一百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱,你每天给我的钱是前一天的两倍,直到满一月(30天),百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算这一个月中陌生人给了百万富翁多少钱?百万富翁给陌生人多少钱?While实现:1译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。可以按以下的规律将电文变成密码:将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z
48、变成D。字母按上述规律转换,非字母字符不变。2. 计算120之间的奇数之和和偶数之和。dowhile循环实现日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想,猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘以3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1,请编程验证。1. 统计一个整数的位数。从键盘输入一个整数,统计该数的位数。例如,输入12345,输出5;输入-99,输出2。For循环实现1.马克思手稿里有一道有趣的数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令:每个男人花3先令,每个
49、女人花2先令,每个小孩花1先令,问男人、女人和小孩各有几人?2. 有一对兔子,从出生后第三个月起每个月都生一对小兔子,小兔子长到第三个月后每月又生一对小兔子,假如兔子都不死,问20个月内每个月的兔子总数为多少?3. 输入一批学生的成绩,找出最高分。循环嵌套计算1!+2!+3!+100!。要求使用嵌套循环。1. 三对情侣参加婚礼,三个新郎为A,B,C,三个新娘为X,Y,Z,有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说他的未婚夫是C;C说他将和Z结婚,这人听后知道他们在开玩笑,全是假话,请编程找出谁将和谁结婚。循环结构程序设计补充(一)阅读程序#i
50、nclude<stdio.h>intmain()inta=O,j;for(j=0;j<4;j+)switch(j)case0:case3:a+=2;break;case1:case2:a+=3;break;default:a+=5;break;printf("%dn",a);return0;分析结果运行结果#include<stdio.h>intmain()inti;for(i=1;i<6;i+)if(i%2)printf("#'');continue;printf("*");printf(&
51、quot;n");return0;分析结果运行结果3.#include<stdio.h>intmain()ints=O,t,i,j;for(i=1;i<=3;i+)t=1;for(j=1;j<=2*i-1;j+)t=t*j;s=s+t;printf("%-5dn",s);return0;分析结果运行结果4. #include<stdio.h>intmain()inty,a;y=2;a=1;while(y-!=-1)doa*=y;a+;while(y-);printf("%d,%dn",a,y);return0
52、;(二)完成程序分析结果运行结果要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。1.一个数如果恰好等于它的因子之和,这个数就称为完数。求100之内的所有完数。请在填写正确内容。#include<stdio.h>intmain()intn,s,j;for(n=1;n<=;n+)s=;for(j=1;j<n;j+)if(n%j=0)s=s+j;if()printf("%dn",s);return0;2. 以下程序的功能是打印以下图形,请在填写正确内容。#include<stdio.h>intmain()in
53、ti,j;for(i=1;i<=4;i+)for(j=1;j<=;j+)printf("");for(j=1;j<=;j+)printf("*");printf("n");return0;3. 以下程序功能是完成用10元人民币换成一角、两角、五角的所有兑换方案,请在填写正确内容。#include<stdio.h>intmain()inti,j,k,n=0;for(i=0;i<=20;i+)for(j=0;j<=50;j+)for()if();printf("第d#:%3d%3d%3d
54、",n,i,j,k);if(n%3=0)printf("n");return0;(三)编写程序1打印九九乘法表。格式:1*1=12. 每个苹果0.8元,第一天买2个,从第二天开始,每天买前一天的2倍,直到当天购买的苹果个数不超过100的最大值为止,编写程序求每天平均花多少钱。实验2.2数组一:一维数组一、实验目的掌握一维数组的定义。1. 掌握一维数组的引用掌握一维数组的初始化。2. 熟练对一维数组元素进行输入输出二、实验学时数2学时三、实验步骤(一)阅读程序#include<stdio.h>intmain()inta=1,2,3,4,5,i,j,s=0
55、;j=1;for(i=4;i>=0;i-)s=s+ai*j;j=j*10;printf("s=%dn",s);return0;分析结果运行结果(二)完成程序要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。1.下面程序的功能是将十进制整数转换成二进制,请在填写正确内容。#inelude<stdio.h>intmain()intk=0,n,j,num16=0;printf("输入要转换的十进制数n");scanf("%d",&n);printf("%d转换为二进制数:
56、n",n);donumk=;n=n/2;while(n!=0);for(k=15;k>=0;k-)printf("%d",numk);return0;2 、设数组a的元素均为正整数,以下程序是求a中奇数的个数和奇数的平均值,请在上填写正确内容。#include<stdio.h>intmain()inta10=10,9,8,7,6,5,4,3,2,1;intk,s,i;floatave;for(i=0,k=s=0;i<10;i+)if()continue;s+=;k+;if(k!=0)ave=s/k;printf("%d,%fn",k,ave);return0;(三)调试程序要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。1. 以下程序实现的功能是输入四
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度临建设施施工安全检查合同规范3篇
- 2025集体合同的意义和作用
- 2025投资人合伙合同范本
- 2024瑜伽教练与工作室协议3篇
- 2025年智能新能源大巴车租赁合同样本3篇
- 2025年销售提成调整与激励机制合同3篇
- 城镇环保施工方案范本
- 铁矿治理施工方案
- 二零二五年度重型货物运输服务合同样本4篇
- 二零二五年度醇基燃料燃烧安全风险评估合同4篇
- 机电安装工程安全培训
- 洗浴部前台收银员岗位职责
- 2024年辅警考试公基常识300题(附解析)
- GB/T 43650-2024野生动物及其制品DNA物种鉴定技术规程
- 暴发性心肌炎查房
- 工程质保金返还审批单
- 【可行性报告】2023年电动自行车项目可行性研究分析报告
- 五月天歌词全集
- 商品退换货申请表模板
- 实习单位鉴定表(模板)
- 数字媒体应用技术专业调研方案
评论
0/150
提交评论