C语言上机实验题
C语言上机试题及答案

实验一Visual C++6.0的使用及顺序结构程序设计一、实验目的1、掌握启动和退出VC6 的方法。
2、熟悉 VC6 开发环境。
3、初步掌握简单程序的上机操作基本步骤,熟悉 C 单文件程序的输入、编译、链接和运行过程。
4、初步掌握程序的编辑修改和调试。
5、熟练使用赋值运算、算术运算等表达式。
6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。
二、实验内容1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!”。
请同学们按照下面的实验指导学习VisualC++6.0的使用。
1 .启动 VisualC++6 .0 开发环境(1)单击开“始”按钮,选择程“序”——〉“Microsoft Visual Studio6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。
(2)单击“结束”按钮,关闭窗口,进入VC6.0 开发环境的主窗口。
2 .使用 Visual C++6.0 对一个 C 程序进行编辑、编译、连接和运行。
⑴分析Visual C++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。
⑵步骤①编辑图 1-1 New 对话框编辑是将 C 源程序输入计算机的过程。
在Visual C++6.0 主界面下,点击File 菜单,选择Ne w 菜单项,即可出现New 对话框,如图1-1 所示。
在弹出窗口中的Files 标签页下,选择C++ Sour ce File。
在选项卡右面的File 编辑框里输入文件名如“Exa.c”,在 Location 编辑框里输入文件路径,2如 : \test”。
点击 OK 按钮。
将出现编辑窗口 ,如图 1-2 所示。
在图 1-2 所示的右端编辑窗口里输 入以下 C 源程序并保存文件。
图 1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件 Exa.c 生成机器语言的过程 ,结果为 Exa.obj ,由于没有 得到系统分配的绝对地址,还不能直接运行,如图 1-3 所示。
大学C 上机实验题目(版)

20XX年复习资料大学复习资料专业:班级:科目老师:日期:实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。
通过亲手编程掌握C++语言编程的方法。
二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。
学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。
指导书中的五个个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为20XXXX20XXXX20XXXX34的同学提交实验1的第5题,则附件命名方式为:1-5-20XXXX20XXXX20XXXX34.cpp,错误提交的将视为未提交。
2. 提交时间定为该次实验课的一周内,过期不再接收。
四、评分和作弊处理1. 要求提交实验题总数为6题(带“*”号),占期末总评成绩的20XX%;2. 存在抄袭和被抄袭的作业,无论抄袭与被抄袭者,本门课程平时成绩以零分记。
存在两次及两次以上抄袭和被抄袭者,本门课程以不及格记。
五、实验课要求(重点强调)1. 严禁QQ、MSN等即时软件工具聊天;2. 严紧接听手机、发送短信;3. 严紧玩游戏。
实验1 函数与编译处理一、实验目的1. 掌握函数声明、定义和使用的方法;2. 掌握形参与实参之间的对应关系;3. 掌握函数调用时,形参、实参之间的“值传递”和“引用传递”的区别;4. 掌握函数递归调用的方法;5. 掌握全局变量、局部变量、静态变量的使用方法;6. 掌握文件包含的使用方法。
二、实验内容1. 定义两个函数swap1和swap2,目的是实现两个整数的次序交换,其中swap1的参数是传递值参数,swap2的参数是引用参数,在程序中分别调用这两个函数,其输出结果如下所示:初始值:x=1,y=2调用swap1后的结果:x=1 y=2调用swap2后的结果:x=2 y=12. 编写一个函数,用来计算从键盘上输入的整数的阶乘。
c语言上机实验题及参考答案

5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
c语言上机实验题

#include <stdio.h>
void fun(int a,int b, int *c)
{
}
void main(void)
{
int a=45,b=12,c;
fun(a,b,&c);
printf("%d",c);
}
m=50;
fun(a,&n, m);
printf("n=%d\n",n);
for(i=0;i<n;i++)
printf("%5d",a[i]);
}
17.函数void fun(int a,int b, int *c)的功能是:将2个两位正整数ab合为一个整数存放在c中,
#include <stdio.h>
void fun(int x, int pp[], int *n)
{
}
void main()
{
int pp[20];
int i,n;
fun(30,pp,&n);
for(i=0;i<n;i++)
printf("%4d",pp[i]);
#include <stdio.h>
#include <string.h>
void fun(char a[], int k,int n)
{
}
void main(void)
{
char a[100]="hellollo world!";
C语言上机测试题目(完整版)

1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>void main(){int i,j,k;for(i=1;i<=4;i++)for(j=1;j<=4;j++)for(k=1;k<=4;k++)if(i!=j&&i!=k&&j!=k)printf("%d%d%d ",i,j,k);printf("\n");}2.企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?#include <stdio.h>main(){ long i;float bonus, bon1, bon2, bon4, bon6, bon10;int c;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("请输入利润i:");scanf("%ld",&i);c=i/100000;if(c>10) c=10;switch(c){ case 0: bonus=1*0.1;break;case 1: bonus=bon1+(i-100000)*0.075;break;case 2 :case 3: bonus=bon2+(i-200000)*0.05; break;case 4:case 5: bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9: bonus=bon6+(i-600000)*0.015;break;case 10: bonus=bon10+(i-1000000)*0.01;}printf("奖金是%10.2f",bonus);}3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include<stdio.h>#include<math.h>void main(){int a,b,c;for(a=0;;a++){ b=sqrt(a+100);c=sqrt(a+268);if(b*b==a+100 && c*c==a+268){printf("%d\n",a);break;}}}4.输入某年某月某日,判断这一天是这一年的第几天?main(){int day,month,year,sum,leap;printf("\nplease input year,month,day\n");scanf("%d,%d,%d",&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf("data error");break;}sum=sum+day; /*再加上某天的天数*/if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1;elseleap=0;if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++;printf("It is the %dth day.",sum);}5.输入三个整数x,y,z,请把这三个数由小到大输出。
c语言上机实验题

c语言上机实验题1.下列程序中,要求main函数实现如下功能:从键盘上输入三个正整数,求出它们中的最大值。
请完善程序,并在程序最后用注释的方式给出你的测试数据及在这组测试数据下的运行结果。
#includevoidmain(){inta,b,c,ma某;printf(\canf(\if(a>b)ma某=a;elema某=bif(c>ma某)ma某=c;printf(\%d\}/某1,2,5ma某ofthethreenumberi5某/2.请编程序,对从键盘上输入的某值,根据以下函数关系计算出相应的y值(设某,y均为整型量)。
某某<00<=某<1010<=某<2020<=某<40#includemain(){int某,y;canf(\if(某<0)y=0;eleif(某>=0&&某<=10)y=某;eleif(某>=10&&某<=20)y=10;eley=-5某某+20;printf(\}y0某10-5某+203.写程序计算下列各表达式的值:1)1234/513(2.240.242)22)3.683)213e2#include#includemain(){floata,b,c;a=2.0/(4.0/5+3)+1;b=qrt((13-pow(2.24-pow(0.24,2),2))/3.68);c=2某3.14159某qrt(13+e某p(2));printf(\}4.写程序计算5某2+2某+6的两个实根。
考虑用合适的方式输出。
(提示:可先计算出判别式b2-4ac的值)#include#includemain(){floata,b,c,某1,某2,p,q,dic;printf(\canf(\dic=b某b-4某a某c;if(dic>=0){p=-b/(2某a);q=qrt(dic)/(2某a);某1=p+q;某2=p-q;printf(\}eleprintf(\}5.从键盘上任意输出一个年份year,判别该年是否为闰年,如是输出“ye”,否则输出“no”。
《C语言》上机实验题及参考答案

《C语言》上机实验题及参考答案作者名:不详来源:网友提供05年7月21日1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
c语言20题上机题目

c语言20题上机题目1.计算球体积Problem Description根据输入的半径值,计算球的体积。
Input输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
Output输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
Sample Input1 1.5Sample Output4.189 14.1372.成绩转换Problem Description输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:90~100为A;80~89为B;70~79为C;60~69为D;0~59为E;Input输入数据有多组,每组占一行,由一个整数组成。
Output对于每组输入数据,输出一行。
如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input56 67 100 123Sample OutputE D A Score is error!3.第几天?Problem Description给定一个日期,输出这个日期是该年的第几天。
Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input1985/1/20 2006/3/12Sample Output20 714.求奇数的乘积Problem Description给你n个整数,求他们中所有奇数的乘积。
Input输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
Output输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
Sample Input3 1 2 34 2 3 4 5Sample Output3 155.平方和与立方和Problem Description给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
C语言培训上机实验题目

安装Visual C ++6.0下载请从群里下载Microsoft Visual Studio.rar。
将下载的文件Microsoft Visual Studio.rar解压后即可使用。
请直接运行文件“Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE”实验一认识C语言【实验目的】1.熟悉C程序设计编程环境Visual C ++,掌握运行一个C程序设计的基本步骤,包括编辑、编译、连接和运行。
编辑:编写源程序文件.c编译:生成目标文件.obj连接:生成可执行文件.exe运行:执行.exe文件。
2.掌握C语言程序设计的基本框架,能够编写简单的C程序。
3.了解程序调试的思想,能找出并改正C程序中的语法错误。
【实验内容】1-1 在磁盘上新建一个文件夹,用于存放C程序,文件夹的名字可以是学号,如D:\3050888。
1-2 编程示例,在屏幕上显示一个短句“Hello World!”。
源程序# include <stdio.h>void main( ){printf("Hello World! \n");}运行结果Hello World!作为第一个实验,在Visual C++编程环境下,以上述C语言源程序为例,介绍运行一个C 程序的基本步骤,请读者按照以下步骤操作。
(1)启动VC++执行“开始”—>“程序”—>“Microsoft Visual Studio 6.0”—> “Microsoft Visual C++ 6.0”,进入VC++编程环境(如图1.1所示)。
图1.1 VC++窗口(2)新建文件执行“文件/File”—>“新建/New”,单击“文件/Files”选项卡(如图 1.2所示),先在“文件/File name”栏中输入test,把C源(程序)文件命名为test.cpp,在“目录/Location”框中选择你已经建立的文件夹,如,D:\3050888,然后选中“C++ Sourse Files”,单击“确定”按钮,在D:\3050888下就新建了文件test.cpp,并显示编辑窗口和信息窗口(如图1.3所示)。
C语言上机试题1-20套

C 语言上机考试题(第一套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){float…………}main() /*主函数 */{ clrscr();printf(″%f\n ″, fun(10));}解答:#include <conio.h> #include <stdio.h> double fun( int n ) { double s=0; int i; for(i=1;i<n+1;i++) s+=1.0/(i*(i+1)); return s; } main() /*主函数 */ { system("cls"); printf("%f\n",fun(10)); }说明:主函数中的clrscr()函数为TC 下使用的清屏函数,在VC 中不能使用,在本题中可以直接删除或改为system("cls")2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几?解答:#include <stdio.h>int main(void){int max,num=0;int i,j;for(i=10000;i<20001;i++){for(j=2;j<i;j++)if( i%j==0 )break;if( j==i && i%10==7){num++;max=i;}}printf("num=%d,max=%d\n",num,max);return 0;}3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。
C程序设计上机实验操作题参考答案

m=t2+(i-400000)*0.03;
else if(i<=1000000)
m=t3+(i-600000)*0.015;
else
m=t4+(i-1000000)*0.01;
printf("Commission: %.2f \n",m);
}
#include <stdio.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("######\n");
printf(" ****\n");
printf("Lin said:\"Star characters account for 40%%\"\n");
return 0;
用scanf函数输入x的值,求y的值。
#include <stdio.h>
int main()
{
float x,y;
printf("input real number x:\n");
scanf("%f",&x);
if(x<1)
y=x;
else if(x>=1&&x<10)
y=2*x-1;
else
y=3*x-11;
return定义一个可以保存10个整型数的一维数组用数组初始化的方法将10个数据3798543102赋值到数组用指针操作数组依次输出这十个数再以逆序输出这十个数
定义两个实数变量a和b,使a中存放5.2245,b中存放2.4678,要求输出结果为:
c语言上机实验

实验3(1)程序#include <stdio.h>int main(){int a=3,b=5,c=7,x=1,y,z;a=b=c;x+2=5;z=y+3;return 0;}程序错误;提示语言--------------------Configuration: fd - Win32 Debug--------------------Compiling...fd.cppC:\Documents and Settings\Administrator\桌面\fd.cpp(2) : error C2447: missing function header (old-style formal list?)执行cl.exe 时出错.fd.exe - 1 error(s), 0 warning(s)修改为:#include <stdio.h>int main(){int a=3,b=5,c=7,x=1,y,z;a=b=c;x=5+3;z=y+3;return 0;}分析结果:在赋值和运算中是从右到左。
分析:A 变量名可以是数字,英文字母(大小写均可)。
下划线。
B大小写可以区分是成不同文件。
C 赋值运算的特点是自右向左的。
实验4(1)整数除的危险性#include <stdio.h>int main(){int a=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/d;f=c/b*a;}程序在运行结果为:0 0 0;分析原因:A 5/7*100,结果是5/7等于0,再0乘上100等于0。
B 5*100/7,结果是5*100等于500,再500/7等于0。
C 100/7*5 结果是100/7等于0,再0*5等于0。
结论:原因在于,当整除不成立时,结果为0,所以结论会影响下一次的运行。
(2)#include <stdio.h>main(){int a=5,b=8;printf(“a++=%d”,a++);printf(“a=%d”,a);printf(“++b=%d”,++b);printf(“b=%d”,b);}得到结论为分析结果:i++“先引用,后增值”:++i“先增值,后引用”所以a++是5,因为先引用,a是6,因为是增值的结果,++b是9,是因为先增值,b是9,是因为后引用的结果。
C语言上机实训

C语言上机实训作业班级:姓名:第一次上机实验题一:2,调试错误截图:(如果有)3,错误原因:符号错误,忘记在末尾加分好,数组知识没有熟练掌握,小括号大括号不规范。
忘记数组知识的利用,函数类型不符合条件。
4,体会和收获:复习在课堂所学习的知识,找出自己在学习中所存在的问题,更加熟练的使用所学知识来解决问题。
在为期两周的时间里,我们将本学期的c语言进行了大概复习与检测,对自己有很好的提升,增强了我的专业知识,也增强了我解决问题的能力。
题二:1):1,源文件及运行结果截图2,调试错误截图:(如果有)无4,体会和收获:很好的巩固了所学知识,来解决实际问题,让我对未来更加充满自信。
题三:1)if-else:3,源文件及运行结果截图2,调试错误截图:(如果有)3,错误原因:开始的时候没能正确理题意,不知道如何下手该怎样做,没有熟练掌握if-else的运用,导致错误。
4,体会和收获:很好的巩固了所学知识。
第二次上机实验题一:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。
3调试错误截图:(如果有)无4,体会和收获:找出自己在学习中所存在的问题,更加熟练的使用所学知识来解决问题,在具体解决问题时更加认真。
题二:求一个5*4的矩阵各列元素的平均值,各行元素的平均值,和所有元素的平均值。
4,源文件及运行结果截图5,调试错误截图:(如果有)无开始的时候没能正确理题意,不知道如何下手该怎样做,没有熟练掌握,导致错误。
6,体会和收获对待事情一定要认真,不可马虎大意题三:任意输入一个年份,判断是否是闰年。
闰年的条件是符合下面条件之一:(1)原文件及运行结果截图(2)调试错误截图(如果有)无(3)体会和收获掌握了如何用所学知识解决问题。
第三次上机实验题一:任意输入一个5位自然数(不含0),输出由该自然数的各位数字组成的最小的数。
例如,输入8593,则输出为3589。
2,调试错误截图:(如果有)无4,体会和收获:复习在课堂所学习的知识,找出自己在学习中所存在的问题,更加熟练的使用所学知识来解决问题。
C语言常见、经典的上机实验题目

3.3 常见、经典的上机实验题目1、/*功能:数组x有十个元素,编程将其元素首尾颠倒。
(即第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换…)。
*/main(){int a[10]={5,65,654 ,5 ,5 ,56,588,77,58,5},j,x;for(j=0;j<5;j++){x=a[j]; a[j]=a[9-j]; a[9-j]=x;}for(j=0;j<10;j++)printf("%d\t", a[j]);}2、/*功能:统计输入的一串字符(假设以‘\n’结束)中,大写字母A,B,...,Z各出现的次数。
(提示,用一个数组count[26]计数各个字母出现的次数,count[0]表示A出现的次数,count[1]表示B出现的次数,...,count[25]表示字母Z出现的次数。
初始时count的各元素值为0。
以后,每读入一个字符ch ,若它是一个大写字母,就让相应计数单元count[ch-'A']加1。
*/main( ){int count[26] ,i;char ch[80];for(i=0;i<26;i++)count[i]=0;gets(ch);for(i=0;i<strlen(ch);i++)if (ch[i]> ='A'&&ch[i]<='Z') count[ch[i]- 'A']++;for(i=0;i<26;i++)printf("%c %d\t", 'A'+i,count[i]);}3、/*功能:键盘输入若干数,输出它们的平均值,输入值为-1时,结束输入*/main( ){int x,i=1,s;scanf("%d",&x);while(x!=-1){s=s+x;i++;scanf("%d",&x);}printf("%d\n",s/i);}4、/*功能:在字符串str中查找字符ch首次出现的位置,若str字符串中不包含字符ch,则输出0。
大一C语言上机实验试题及答案

大一C语言上机实验试题及答案一、选择题(每题2分,共10分)1. C语言中,用来定义变量的关键字是()。
A. varB. defineC. intD. let答案:C2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. =D. :答案:D3. 在C语言中,用于定义一个函数的关键字是()。
A. functionB. defC. intD. void答案:A4. 下列哪个选项是正确的C语言数组定义?A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = {1, 2};D. int arr = {1, 2, 3};答案:B5. C语言中,用于输出字符串的函数是()。
A. printfB. printC. coutD. printf_s答案:A二、填空题(每题3分,共15分)1. 在C语言中,用于声明一个整型变量的关键字是____。
答案:int2. 以下代码段的输出结果是____。
```c#include <stdio.h>int main() {int a = 10;printf("%d", a++);return 0;}```答案:103. 在C语言中,用于声明一个浮点型变量的关键字是____。
答案:float4. 若有以下代码段:```cint x = 5, y = 3;int result = x / y;```则变量result的值是____。
答案:15. 在C语言中,用于声明一个字符型变量的关键字是____。
答案:char三、编程题(每题10分,共20分)1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,然后输出其反转后的字符串。
(完整版)C语言上机练习题及答案

(完整版)C语言上机练习题及答案1输入三个整数x,y,z,把这三个数由小到大输出。
# includevoid main(){int x,y,z,a;scanf ("%d,%d,%d",&x,&y,&z);if(x>y) {a=x; x=y;y=a;}if(x>z) { a=x; x=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",x,y,z);}2输入圆的半径,输出圆的周长和面积。
# include# define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# includevoid main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# includeint main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
C语言上机实验试题

实验一初识Visual C++6.0环境及运行C实例作业:一.选择题1.若int a, b; scanf("%d%d", &a, &b); 不可以用( A )作为输入的分隔符。
A), B)空格 C)回车 D)TAB键2.阅读以下程序,当输入数据的形式是:25,13,10<CR>,正确的输出结果是( D )。
main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d",x+y+z);}A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定值3.已知ch是字符型变量,下边正确的赋值语句是( B )A) ch='123'; B)ch='\xff'; C)ch='\08'; D) ch="\";二.填空题1. 以下程序的输出结果是(a= +1124,a=1124 ,x=30.141500,x= 30.142)main(){int a=1124;double x=30.1415;printf("a=%+6d,a=%-6d,x=%f,x=%7.3f",a,a,x,x);}2.以下程序的输出结果是( 36.750000 ) main(){int x=10;float y=26.75;printf("%f",x+y);}实验二 C程序的调试及运算符作业:1.指出下面的是标识符、关键字还是常量。
abc,2,new,struct,″opiu″ ,′k′, ″k″,false ,bnm,true,0xad,045,if ,goto解: abc是标识符,2是整型常量,new、struct是关键字,″opiu″是字符串常量,′k′是字符常量,″k″ 是字符串常量,false是布尔常量,bnm 是标识符,true是布尔常量,0xad是十六进制的整型常量,045是八进制的整型常量,if、goto都是关键字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章循环控制通过本章实验作业应达目标1.熟悉while、for、do_while、break、continue语句的作用与使用规范。
2.学习并掌握利用while语句、for语句、do_while语句实现循环结构。
3.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。
4.进行算法设计训练,能综合所学控制结构语句解决一般问题。
本章必须上交作业程序6_1.c、6_2.c、6_5.c、6_6.c、6_8.c上传至211.64.135.121/casp。
本章开始,上机实验项目量加大,希望同学们多多自行上机。
本章实验项目有余力都可以做一下并上交。
循环程序设计计算机解决问题都是按指定的顺序执行一系列的动作。
按照特定的顺序执行相应的动作来求解问题的过程称为算法。
程序中的语句是算法的体现,而算法要解决的是“做什么”和“怎么做”的问题。
计算机程序中指定语句的执行顺序称为“程序控制”。
结构化的程序控制包含三种基本结构:顺序结构,选择结构和循环结构。
1. 循环设计循环是在循环条件为真时反复执行的一组计算机指令,是计算机解题的一个重要结构。
循环控制有两种基本方法:计数法和标志法。
1)计数器控制的循环事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。
每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。
教材例6.2、6.3、6.7都是典型的计数器控制的固定次数次数循环。
2)标志控制的循环事先不知道准确的循环次数,由某一目标值标记循环的结束。
如,教材例6.6中以|t|的值达到标记下限值1e-6作为循环的结束。
循环设计时要注意合理设计循环条件,使得循环不会成为死循环。
2. 算法程序设计的首要工作是算法设计,离开了算法也就没有了程序。
算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。
循环主要用来解决程序设计中两类基本的算法:穷举和迭代。
1)穷举穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。
穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。
例:输入两个正整数x和y,求其最大公约数。
main(){int x,y,i,flag;printf("Please input two numbers:");scanf("%d%d",&x,&y);for(i=x<y?x:y;i>=1;i--) /* 使用i进行穷举*/ if(x%i==0&&y%i==0) break; /* 条件满足,就结束循环*/ printf("greatest common divisor=%d\n",i);}两个数中的小者到2之间任何一个数都有可能是公约数,因此用变量i从大到小一一穷举,直到找到为止。
若两数互质,当i==1时也能使条件满足。
2)迭代按照特定规律和方法,不断用新值取代变量的旧值,或由旧值递推出变量新值,直至问题解决为止,这种解决问题的方法为迭代。
迭代的关键因素是:迭代初值、迭代公式和迭代次数(精度要求)。
例:使用辗转相除法求两数的最大公约数。
辗转相除法:如果x除以y的余数为0,则除数y就是最大公约数,或余数不为0,则被除数x被除数y取代,除数y被余数取代,再用新的x除以新的y,判断余数是否为0,如果不为0,则重复此迭代过程,直至余数为0,此时的除数y即为最大公约数。
main(){int x,y,temp;printf("Please input tw o numbers:");scanf("%d%d",&x,&y);temp=x%y;while(temp!=0) /* 辗转相除,直到temp为0 */{x=y; /*迭代*/y=temp; /*迭代*/temp=x%y;}printf("greatest common divisor=%d\n",y);}运行时输入:66 121输出:greatest common divisor=11 各值的变化如下:x y temp=x%y66 121 66121 66 1166 11 0实验一固定次数的循环设计【实验目的】学习设计固定次数的循环。
【实验内容】编写程序,计算x的y次方。
这里x为double型,y为int型。
x、y通过键盘输入,要考虑y为负数的情况。
例:当输入2.5 3时,输出15.625000;当输入2.5 -3时则输出0.064000。
程序以6_1.c命名并上交。
输入输出屏幕示例【指导】本实验中,假设y为正数时,可定义结果变量sum,想办法使sum*=x语句执行y次。
对固定次数的循环,通常方法是设计一个循环变量i,让其在初值与终值之间变化控制控制循环次数,循环条件通常是:i≤终值。
如:for(i=初值;i≤终值;i++)循环体语句;实验二整数按位折分求和【实验目的】学习设计与控制循环,并熟练%(求余)运算。
【实验内容】输入一个不大于2×109(用long型数据)的正整数x,求这个数每位数字之和。
例如,若输入33456781,输出37。
程序以6_2.c命名并上交。
【提示】设计循环,每次求出x的个位数(使用求余运算)并累加到和值变量中,再迭代操作,改变x的值,使原来的十位变个位。
【讨论与思考】long型数据的最大值是2147483647,受变量类型限制,本程序只能接收不大于2×109的正整数。
如果进行扩充,要求能接收并计算一个30位整数的各位之和,那么数据类型应如何设置,程序应该如何编写?实验三输出九九乘法表【实验目的】学习多重循环的嵌套。
【实验内容】下面程序输出九九乘法表如下图。
请完善程序并以6_3.c命名。
#include<stdio.h>void main(){int i,j;clrscr();for(_________________________){for(_________________________ )printf("%d*%d=%-2d ",i,j,i*j);_______________________;}}实验四打印数字塔图形【实验目的】学习使用循环语句构成的多重循环嵌套。
【实验内容】编写程序,使用循环输出如下图所示的数字塔图形。
程序以6_4.c命名。
【提示】此图形上下对称,可将程序分为上下两部分实现。
上半部输出9行,下半部输出8行。
每一行包含三部分内容:开始的空格、中间的数字及最后的换行符。
需要考虑的是字符个数与行号的关系。
下面程序用于输出如下*字符塔,供本题参考。
#include<stdio.h>void main(){int i,j;clrscr(); /* 清屏 */for(i=1;i<=9;i++) /* 行循环 */{for(j=1;j<=9-i;j++) /* 输出行左空格*/printf(" ");for(j=1;j<=2*i-1;j++) /* 输出若干* 字符 */printf("%c",'*');printf("\n"); /* 换行 */}}实验五寻找素数【实验目的】领会并牢固掌握素数算法,深入循环结构设计。
【实验内容】从键盘输入一个大于3的正整数,输出距离该数最近的素数。
根据输入的数不同,此问题可能有一个答案(或者比输入的数大或者比输入的数小),也可能需要输出两个值(一个比输入的数大,一个比输入的数小,两个距离输入的数一样近)。
程序以6_5.c命名并上交。
实验六不等式求解【实验目的】学习在循环中使用break控制语句。
【实验内容】键盘输入一个数给m,计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m最大的n。
例如,当m=10000时,程序输出:n=38。
程序以6_6.c 命名并上交。
【提示】参考解法:for(i=1;1;i++) /* 循环条件为恒真 */{计算(1+2+3+……+i) s;将计算结果s累加到变量sum中;判断sum的值是否大于m是,则终止循环否,则继续进入下一次循环}输出与对应结果,其值会与i相关。
实验七统计字数【实验目的】学习使用循环处理字符串相关问题。
【实验内容】完善以下程序6_7.C 。
程序任务:输入一串字符,以“#”作为输入结束标志,显示其中字母与数字字符的个数。
#include<stdio.h>void main(){int ch_num,dig_num;char ch;ch_num=dig_num=0;do{ch=getchar();/* 完善程序,统计52个英文字母与十个数字字符的个数 */ }while(__________); /* 给出循环条件*/printf("The number of chars is:%d\n",ch_num);printf("The number of digital is:%d\n",dig_num);}实验八礼炮响声统计【实验目的】学习循环中条件的设计与数据统计。
【实验内容】活动中有三门礼炮,各装有十枚炮弹。
第一门礼炮每隔3秒发一枚炮弹,第二门每隔5秒、第三门每隔7秒发一枚炮。
问观礼群众一共听到几声炮响。
同一时间发出炮声算一响。
程序以6_8.c命名并上交。
【实验提示】程序中可分别设置计时器变量与计数器变量。
计时器以秒为单位递增,测试此时有无炮发出。
只要有一枚炮发出,则计数器增1。
注意不要重复统计。
实验九验证哥德巴赫猜想【实验目的】综合运用多重循环结构、标志法、穷举法解决问题。
【问题描述】1742年6月,德国数学家哥德巴赫在给大数学家欧拉的信中提出一个问题:任何大于4的偶数均可以表示为两个素数之和吗?欧拉复信道:任何大于4的偶数均可以表示为两个素数之和,这一猜想我还不能证明,但我确信无疑地认为这是完全正确的定理。
哥德巴赫猜想是世界著名的数学难题,至今未能在理论上得到证明,自从计算机出现后,人们就开始用计算机去尝试解各种各样的数学难题,包括费马大定理、四色问题、哥德巴赫猜想等,虽然计算机无法从理论上严密地证明它们,只能在有限的范围内对其进行检验,但也不失其意义。
【实验内容】程序要求:输入一个int型数据范围内的偶数x(x>4),找到两个素数a、b,满足x=a+b。
最后输出此等式。
如输入98,输出98=19+79。