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语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)C语言实验报告实验1-1:hello world程序:源代码:#includemain(){printf("hello world!\n");system("pause");}实验1-2:完成3个数据的输入、求和并输出计算结果的程序:源代码:#includemain(){int i,j,k,sum;scanf("%d%d%d",&i,&j,&k);sum=i+j+k;printf("sum=%d",sum);system("pause");实验1-3:在屏幕上输出如下图形:ABBBCCCCC源代码:#includemain(){printf(" A\n");printf(" BBB\n");printf(" CCCCC\n");system("pause");}实验2-1:计算由键盘输入的任何两个双精度数据的平均值源代码:#includemain(){double a,b;scanf("%lf%lf",&a,&b);printf("%.1lf\n",(a+b)/2);system("pause");}实验2-2:写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算源代码:#includemain(){float a,b,c,d,e,f,g,x;scanf("%f%f%f%f%f%f%f",&a,&b,&c,&d,&e,&f,&g);x=a + b * (c - d ) / e * f - g;printf("x=%f",x);system("pause");}实验2-3:编写一个C语言程序,测试下列各表达式:i, ji + 1 , j + 1i++ , j++++i , ++ji+++++j源代码:#includemain(){int i=1,j=1;printf("%d %d\n",i+1,j+1);printf("%d %d\n",i++,j++);printf("%d %d\n",++i,++j);printf("%d\n",(i++)+(++j));system("pause");}实验2-4:输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。
大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)大学大一C语言程序设计实验室上机题全部代码答案(实验报告)实验目的:本实验旨在让大一学生通过实际操作掌握C语言的基本语法和常见程序设计题型,提高编程能力。
实验要求:1. 学生需要在实验室中完成上机题,并编写相应的代码。
2. 要求代码具有良好的结构和规范,能够正确运行,并符合题目要求。
3. 学生需要记录代码的思路和过程,并在实验报告中进行详细说明。
实验过程:本次实验共包括以下几个上机题,分别是:1. 题目:输入两个整数,计算它们的和。
实现思路:- 首先,定义两个整型变量a和b,用来保存输入的两个整数。
- 然后,使用scanf函数分别读取两个整数的值。
- 接下来,定义一个整型变量sum,用来保存两个整数的和。
- 使用sum = a + b计算两个整数的和。
- 最后,使用printf函数将结果输出到屏幕上。
2. 题目:输入一个整数n,计算1到n之间所有整数的和。
实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。
- 然后,使用scanf函数读取整数n的值。
- 接下来,定义一个整型变量sum,用来保存1到n之间所有整数的和。
- 使用for循环语句,从1循环到n,累加每个整数的值。
- 最后,使用printf函数将结果输出到屏幕上。
3. 题目:输入一个整数n,判断它是否是质数。
实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。
- 然后,使用scanf函数读取整数n的值。
- 接下来,定义一个布尔型变量isPrime,用来保存n是否是质数的判断结果。
- 使用for循环语句,从2循环到n-1,判断n是否能被其中任意一个整数整除。
- 如果n能被任意一个整数整除,则将isPrime设为假;否则,将isPrime设为真。
- 最后,根据isPrime的值,使用printf函数输出相应的判断结果。
4. 题目:输入一个正整数n,输出n的所有因子。
实现思路:- 首先,定义一个整型变量n,用来保存输入的正整数。
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语言上机练习参考答案

第1章 C语言概述1-1编写程序,在屏幕上显示一个如下输出:1-2--------------------------------- 1-3Programming in C is fun!1-4I love C language.1-5---------------------------------Program1-6编写程序,在屏幕上显示一个如下图案:1-7* * * *1-8 * * * 1-9 * * 1-10 * Program (1)Program (2)1-11已知某个圆的半径,编写一个程序,用来计算并显示面积。
1-12要求:将π定义为符号常量,并假设一个恰当的半径值。
ProgramOutputThe area of circle is:1-13已知两个整数20和10,编写程序,自定义函数add( )将这两个数相加,自定义函数sub( )计算这两个数的差,并按照下面形式显示计算结果:1-1420+10=30 1-1520-10=10 ProgramOutput20 + 10 = 3020 – 10 = 101-16 已知变量a 、b 和c 的值,编写程序,用来计算并显示x 的值,其中c b a -=x 1-17 请分别用以下数值运行该程序1-18 (1)a=250,b=85,c=251-19 (2)a=300,b=70,c=80Program (1)Output (1)x =Program (2)Output (2)x =第2章 常量、变量及数据类型 & 第3章 运算符和表达式3-1 编写程序,求华氏温度100o F 对应的摄氏温度。
计算公式如下:3-2 9)32(5-⨯=f c 3-3 式中:c 表示摄氏温度,f 表示华氏温度。
(c 定义为实型,f 定义为整型) ProgramOutputCelsius degree (corresponding to 100 Fahrenheit) is: .3-4 一个物体从100m 的高空自由落下,编写程序,求它在前3s 内下落的垂直距离。
C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
C语言简单上机考试编程及答案(一)

C语言简单上机考试编程及答案(一)在学习C语言时,除了掌握基本语法和理论知识,还需要进行上机练习和编程考试来巩固和检查学习成果。
下面是一份C语言简单上机考试编程及答案,希望对大家练习和测试C语言知识有所帮助。
一、基础语法1.请编写一个程序,实现输入两个整数,输出它们的和、差、积和商。
#include <stdio.h>void main(){int a, b;printf("请输入两个整数:\n");scanf("%d%d", &a, &b);printf("a + b = %d\n", a + b);printf("a - b = %d\n", a - b);printf("a * b = %d\n", a * b);printf("a / b = %d\n", a / b);}2.请编写一个程序,判断输入的整数是否是偶数。
#include <stdio.h>void main(){int n;printf("请输入一个整数:\n");scanf("%d", &n);if (n % 2 == 0)printf("%d是偶数\n", n);elseprintf("%d是奇数\n", n);}二、循环语句1.请编写一个程序,输出1-100中所有偶数的和。
#include <stdio.h>void main(){int i, sum = 0;for (i = 1; i <= 100; i++){if (i % 2 == 0)sum += i;}printf("1-100中所有偶数的和为%d\n", sum);}2.请编写一个程序打印如下图案,要求任意输入大于等于3的整数n,如n=5时输出如下图案:*************#include <stdio.h>void main(){int i, j, k, n;printf("请输入一个大于等于3的整数:\n");scanf("%d", &n);for (i = 1; i <= n / 2 + 1; i++){for (j = 1; j <= n / 2 + 1 - i; j++)printf(" ");for (k = 1; k <= i * 2 - 1; k++)printf("*");printf("\n");}for (i = n / 2; i >= 1; i--){for (j = 1; j <= n / 2 + 1 - i; j++)printf(" ");for (k = 1; k <= i * 2 - 1; k++)printf("*");printf("\n");}}三、函数调用1.请编写一个函数,实现输入两个整数,返回它们的和。
C语言程序设计 上机实验指导与习题 参考答案

C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
《C语言》上机实验题及参考答案

《C语言》上机实验题及参考答案2017《C语言》上机实验题及参考答案为了帮助大家备考接下来的计算机二级考试,应届毕业生店铺整理了2017《C语言》上机实验题及参考答案,希望能帮助大家备考计算机二级考试。
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语言程序设计上机习题答案华南农业大学

C语言程序设计上机实验指导与习题参考答案华南农业大学上机实验实验 1 C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。
(3)通过运行简单的C程序,初步了解C程序的特点。
(4)在教师的指导下,学会使用JudgeOnline实验系统。
二、实验内容1. 运行第一个 C 程序[题目:The first C Program]将下列程序输入 TC(或 VC++),编译、连接和运行该程序。
void main(){printf("The first C Program\n");}[具体操作步骤]以 Turbo C 上的操作为例(1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。
(2)在编辑窗口中输入程序。
(3)保存程序,取名为 a1.c。
(4)按照第一章中介绍的方法,编译、连接和运行程序。
2.在JudgeOnline系统中提交实现了计算a+b功能的程序[题目 1001:计算 a+b]由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,void main(){ int a, b;scanf("%d%d", &a, &b);1printf("%d", a + b);}(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为 a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入15 30↙(↙表示输入回车符)(5)如果看到如下输出结果,则表明15+30的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入JudgeOnline实验系统。
(7)显示题目列表,点击题号为1001,题名为“计算 a+b”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit”,参照第二章提交程序的方法提交程序a2.c。
C语言上机实验完整答案

实验 2
程序代码 #include<stdio.h> void main () {char a;int i;
for (i=1;;i++) {
a=getchar(); if(a=='\n') break; switch(a) {case '0':printf(" zero ");break;
case '1':printf(" one ");break; case '2':printf(" two ");break; case '3':printf(" three ");break; case '4':printf(" four ");break; case '5':printf(" five ");break; case '6':printf(" six ");break; case '7':printf(" seven ");break; case '8':printf(" eight ");break; case '9':printf(" nine ");break; }
printf("input a number\n"); scanf("%d",&n); h=n-7*i;
while(h>7) {i=i+1; h=n-7*i;} switch(h) { case 1: printf("星期一\n"); break ; case 2: printf("星期二\n"); break ; case 3: printf("星期三\n"); break ; case 4: printf("星期四\n"); break ; case 5: printf("星期五\n"); break ; case 6: printf("星期六\n"); break ; case 7: printf("星期日\n"); break ; } } 运行结果
C语言上机练习参考答案

第1章C语言概述1-1编写程序,在屏幕上显示一个如下输出:---------------------------------Programming in C is fun!I love C language.---------------------------------1-2编写程序,在屏幕上显示一个如下图案:* * * ** * ** **1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。
要求:将π定义为符号常量,并假设一个恰当的半径值。
OutputThe area of circle is: 78.501-4已知两个整数20和10,编写程序,自定义函数add( )将这两个数相加,自定义函数sub( )计算这两个数的差,并按照下面形式显示计算结果:20+10=3020-10=10Output20 + 10 = 3020 – 10 = 101-5 已知变量a 、b 和c 的值,编写程序,用来计算并显示x 的值,其中cb a -=x 请分别用以下数值运行该程序(1)a=250,b=85,c=25(2)a=300,b=70,c=80Output (1)x = 4.17Output (2)x = -30.00第2章 常量、变量及数据类型 & 第3章 运算符和表达式 3-1 编写程序,求华氏温度100o F 对应的摄氏温度。
计算公式如下:9)32(5-⨯=f c 式中:c 表示摄氏温度,f 表示华氏温度。
(c 定义为实型,f 定义为整型)OutputCelsius degree (corresponding to 100 Fahrenheit) is: 37.78.3-2 一个物体从100m 的高空自由落下,编写程序,求它在前3s 内下落的垂直距离。
设重力加速度为10m/s 2。
要求,将重力加速度定义为符号常量,尝试将其改为9.8 m/s 2,看结果有何不同?OutputThe falling vertical distance (in 3 seconds) is:45.00.3-3将球的半径R定义为符号常量,计算球的表面积(4πR2)和体积(4/3*πR3)。
C语言程序设计上机习题与参考答案

C语言程序设计上机习题1、给出三角形的三边a、b、c,求三角形的面积〔应先判断a、b、c三边是否能构成一个三角形〕.2、某幼儿园只收2~6岁的小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编制程序实现每输入一个年龄,输出该编入什么班.3、编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息:〔1〕能同时被3、5、7整;〔2〕能同时被3、5、7中的两个数整除,并输出这两个数;〔3〕只能被3、5、7中的一个数整除;〔4〕不能被3、5、7中的任何一个数整除.4、请列出所有的个位数是6,且能被3整除的两位数.5、求1~500中能被5整除的数的倒数之和.6、编写程序,输入某门功课的若干个同学的成绩,以-1作为终值,计算平均成绩并输出.7、若口袋里放入12个球,3个红球,3个白的,6个黑的,从中任取8个,编写程序,列出所有可能的取法.8、编写一个程序,求2012!的末尾有多少个0?9、一个自然数平方的末几位与该数相同时,称该数为同构数.例如:252=625,则25为同构数.编程求出1~1000中的同构数.10、输入一个较大的整数,求小于该整数的最大5个素数.11、求下列数列的近似值:S=1-1/22+1/33-1/44+…〔-1〕n/n n.输入精度,当某一项的精度小于该值时停止计算.float fun<float esp>{ }void main<>{float esp;scanf<"%f",&esp>;printf<"%f\n",fun<esp>>;}12、编写一个函数change<int x,int r>,将十进制整数x转换成r<1<r<10>进制后输出.13、求1000以内的亲密数对.亲密数对的定义为:若整数a 的所有因子〔不包括本身〕之和为b,b的所有因子〔不包括b本身〕之和为a,且a和b不相等,则称a与b为亲密数对.int fun<int x>{ }void main<>{int n,a,b;for<n=1;n<1000;n++>{b=fun<n>;a=fun<b>if<a!=b&&a==n>printf<"\n%d,%d\n",a,b>;} }14、用递归法求下列问题的解:一对小兔,一个月后长成中兔,第二个月长成大兔,长成大兔,长成大兔后以后每个月生一对小兔.第20个月有多少对兔子?15、定义一个函数long f<char s[ ]>,函数功能是将字符串s<只由数字符组成>转换为一个整数,并作为函数的返回值.long f<char s[ ]>{ }void main<>{ char s[10];long int res;gets<s>;res=f<s>;printf<"%ld\n",res>; }16、自编一函数,其功能是求一维数组最大值的下标,最大值由主函数输出.int fun<float aa[ ],int n >{ }void main<>{float a[10];int k,max;for<k=0;k<10;k++>scanf<"%f’,a+k>;max=fun<a,10>;printf<"Max=%f\n",a[max]>; }17、编写一个函数fun<char s[ ],int n>,函数的功能是将字符串s循环左移n个字符.主函数输入一个字符串的一个整数.void fun<chaf s[ ],int n>{ }void main<>{char ss[255];int n;gets<ss>;printf<"Input data:\n">;scanf<"%d",&n>;fun<ss,n>;puts<ss>;}18、编写一个函数,其功能是将字符串中指定的字符删除.void fun<char *ss,char c>{ }void main<>{char s[255],ch;printf<"Input a string:\n">;gets<s>;printf<"Input a character:\n">;scanf<"%c",&ch>;fun<s,ch>;puts<s>;}19、完成下面的函数,函数的功能是将a数中大于平均值的数组元素存入b数组中,大求平均值的数据个数通过指针方式返回.void fun<int *a,int *b,int k,int *n>{ }void main<>{int a[10],b[10],kk,,sum;for<kk=0;kk<10;kk++>scanf<"%d",aa+k>;fun<a,b,10,&sum>;for<kk=0;kk<sum;kk++>printf<"%6d",*<b+kk>>;}20、从键盘输入一任意的字符串,编一函数,其功能是将该字符串的数字字符构成一个数据返回.例如:输入字符串为1dfk3d45,得到返回值为1345.void fun<char *s,long int *n>{ }void main<>{char s[20];long int d;gets<s>;fun<s,&d>;printf<"%ld\n",d>;}参考答案1.#include<stdio.h>#include<math.h>void main<>{float a=3,b=4,c=5,p=0,s=0;if<<a+b>c>&&<a+c>b>&&<b+c>a>>{p=0.5*<a+b+c>;s=sqrt<p*<p-a>*<p-b>*<p-c>>;printf<"面积是%f\n",s>;}else printf<"不能构成三角形\n">;}2.#include<stdio.h>#include<math.h>void main<>{int age;printf<"请输入年龄:">;scanf<"%d",&age>;if<age>=2&&age<=6>if<age<=3>printf<"编入小班\n">;elseif<age<=5>printf<"编入中班\n">;elseprintf<"编入大班\n">;elseprintf<"您的输入有误!\n">;}3.〔1〕#include<stdio.h>void main<>{int n;printf<"请输入数n:\n">;scanf<"%d",&n>;if<n%3==0&&n%5==0&&n%7==0>printf<"能同时被3,5,7整除">;}〔2〕#include <stdio.h>void main<>{int n;printf<"请输入数n:\n">;scanf<"%d",&n>;if<n%3==0&&n%5==0&&n%7!=0> printf<"能同时被3,5整除\n">;if<n%3==0&&n%5!=0&&n%7==0> printf<"能同时被3,7整除\n">;if<n%3!=0&&n%5==0&&n%7==0> printf<"能同时被5,7整除\n">; }<3>#include <stdio.h>void main<>{int n;printf<"请输入数n: ">;scanf<"%d",&n>;if<n%3==0&&n%5!=0&&n%7!=0> printf<"只能被3整除\n">;if<n%3!=0&&n%5==0&&n%7!=0> printf<"只能被5整除\n">;if<n%3!=0&&n%5!=0&&n%7==0> printf<"只能被7整除\n">;}<4>#include <stdio.h>void main<>{int n;printf<"请输入数n: ">;scanf<"%d",&n>;if<n%3!=0&&n%5!=0&&n%7!=0>printf<"不能被3、5、7中的任何一个数整除\n">;}4..#include <stdio.h>void main<>{int i;for<i=1;i<100;i++>{if<i%10 == 6 && i%3 == 0>printf<" %d",i>;}printf<"\n">;}5.#include <stdio.h>void main<>{float sum = 0;for<int i=1;i<=500;i++>{if<i%5 == 0>sum+=<1.0/i>;}printf<"sum=%f\n",sum>;}6.#include <stdio.h>void main<>{int n=0;float s=0,sum=0;printf<"请输入若干学生成绩<输入-1结束>:">;while<s!=-1>{sum+=s;scanf<"%f",&s>;n++;} sum=sum/<n-1>;printf<"该课程的平均成绩是:%5.2f\n",sum>;}7.#include <stdio.h>void main<>{int Red,White,Black;int Count=0;for <Red=0;Red<=3;Red++>for<White=0;White<=3;White++>{Black=8-Red-White;if <Black>=0 && Black<=6>printf<"%2d. %d个红球,%d个白球,%d个黑球\n",++Count,Red,White,Black>;}printf<"\n共有%d种!\n\n",Count>;}8.<这道题目就是看可以分解成多少个5相乘的数>#include <stdio.h>int main<>{int result=0;for<int i=1; i<=2012; ++i>for<int n=i; n%5==0; n/=5>++result;printf<"%d\n",result>;return 0;}9.#include <stdio.h>void main<>{long i,j,k;k=10;for<i=1;i<=1000;i++>{if<i==k>{k*=10;}j=i*i;if<j%k==i>{printf<"%ld\t%ld\n",i,j>;}}}10.#include <stdio.h>void main<>{int n,count=0;printf<"请输入一个整数n:">;scanf<"%d",&n>;for<int i=n; i>=2; i-->for<int t=2; t*t<=i; t++>{if<i%t==0>break;else{count++;if<count<=5>printf<"%d\t",i>;break;}}printf<"\n">;}11.#include <stdio.h>#include<math.h>float fun<float esp>{int n=0;float s=0;do{n++;s+=pow<-1,n-1>*1.0/pow<n,n>;}while<1.0/pow<n,n>>esp>;return s;}void main<>{float esp;scanf<"%f",&esp>;printf<"%f\n",fun<esp>>;}12.#include<stdio.h>void change<int x,int r>{int a[32],i;for<i=0;x!=0;i++>{a[i]=x%r;x/=r;}for<i--;i>=0;i-->printf<"%d",a[i]>;printf<"\n">;}void main<>{int x,r;printf<"请输入x和r:">;scanf<"%d%d",&x,&r>;change<x,r>;}13.#include <stdio.h>int fun<int x>{int y=0;for<int i=1;i<x;i++>{if<x%i==0>y+=i;}return y;}void main<>{int n,a,b;for<n=1;n<1000;n++>{b=fun<n>;a=fun<b>;if<a!=b&&a==n>printf<"%d %d\n",a,b>;}}14.#include <stdio.h>int func<int n>{if<n==1||n==0>return 1;else return 2*func<n-1>+func<n-2>; }void main<>{printf<"%d\n",func<20>>;}15.#include <stdio.h>#include<math.h>long f<char s[ ]>{ long t=0;for<int i=0;i<10;i++>{t+=<s[i]-48>*pow<10,9-i>;}return t;}void main<>{ char s[10];long int res;gets<s>;res=f<s>;printf<"%ld\n",res>;}16.#include <stdio.h>int fun<float aa[],int n >{ int max=0;for<int i=0;i<10;i++>if<aa[i]>=aa[max]>max=i;return max;}void main<>{float a[10];int k,max;for<k=0;k<10;k++>scanf<"%f",&a[k]>;max=fun<a,10>;printf<"Max=%f\n",a[max]>; }17.#include <stdio.h>#include <string.h>void fun<char s[ ],int n> {char a[200]="";memcpy<a,s,n>;strcat<strcpy<s,s+n>,a>; }void main<>{char ss[255];int n;gets<ss>;printf<"Input data:\n">;scanf<"%d",&n>;fun<ss,n>;puts<ss>;}18.#include <stdio.h>void fun<char *ss,char c>{int i,j;for<i=0;ss[i]!=0;i++>{if<ss[i]==c>for<j=i;ss[j]!=0;j++>ss[j]=ss[j+1];}}void main<>{char s[255],ch;printf<"Input a string:\n">;gets<s>;printf<"Input a character:\n">;scanf<"%c",&ch>;fun<s,ch>;puts<s>;}19.#include<stdio.h>void fun<int *a,int *b,int k,int *n> {float sum=0,avg=0;int i,j=0;for<i=0;i<k;i++>sum+=*<a+i>;avg=sum/k;for<i=0;i<k;i++>{if<a[i]>avg>{b[j]=a[i];j++;}}*n=j;}void main<>{ int a[10],b[10],kk,sum;for<kk=0;kk<10;kk++>scanf<"%d",&a[kk]>;fun<a,b,10,&sum>;for<kk=0;kk<sum;kk++>printf<"%6d",*<b+kk>>;}20.#include <stdio.h>#include<math.h>void fun<char *s,long int *n> {long int t=0;int count=0,i;int a;for<i=0;i<20;i++>{if<s[i]>=48&&s[i]<=57>{count++;}}for<i=0;i<20;i++>{if<s[i]>='0'&&s[i]<='9'>{ count--;t=t+<s[i]-48>*pow<10,count>;}}*n=t;}void main<>{ char s[20];long int d;gets<s>;fun<s,&d>;printf<"%ld\n",d>;}。
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( “ Very Good\n ” );2、 #include <stdio.h>void main( ) { int a,b,c,d;printf( printf( );{ printf( );Please enter a,b: ”);scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b;printf( printf( }“ %d+%d=%d”\n ,a,b,c); “ %d*%d=%d\”n ,a,b,d);3、#include <stdio.h> #include <math.h> void main( ){ double x,s; printf( scanf( “ Please input value of x: ”); “%lf ”,&x);s=cos(x);printf(}“ cos(%lf)=%lf\n ”,x,s);4、#include <stdio.h>void main( ) { printf(printf( printf( printf(}“==================================”\n) ; “ 1 输入数据 2 修改数据\n ”);“ 3 查询数据 4 打印数据\n ”);“===================================”\ n);5、#include <stdio.h> void main( ){ int x,y,t;printf( scanf( “ Please enter x and y: ”); “%d%”d ,&x,&y);t=x; x=y; y=t;printf(}“ After swap:x=%d,y=%d\n ” ,x,y);实验二简单的C程序设计(4学时)、实验方式:一人一机、实验目的:1、掌握C语言的数据类型。
C语言实验报告 实验一 参考答案

实验一参考答案1、数据类型、运算符和表达式的应用(1)整型数据的溢出(建立程序文件名为sy1-1.c)# include <stdio.h>void main(){short int a,b;a=32767;b=a+1;printf("a=%d,b=%d\n",a,b);}程序运行结果:a=32767,b=-32768原因:32767是short int型数据的最大值,其二进制为(0111111111111111),在其上加1后产生溢出,变成-32768的补码,其二进制为(1000000000000000)。
整数在内存中以二进制补码形式存放,运算时符号位也要参与运算。
结论:使用整型数据应注意其表示范围,避免产生溢出。
(2)浮点型数据的舍入误差(建立程序文件名为sy1-2.c)# include <stdio.h>void main(){float a,b;a=123456.789e5;b=a+20;printf("a=%f\tb=%f\n",a,b);}程序运行结果:a=1345678848.000000 b=12345678868.000000原因:理论分析a变量的值为12345678900,b的值经计算应为12345678920,结果输出的a和b的值都不对,原因是float型数据的有效数字位数为7位,后几位数字都是不准确的。
结论:应当避免将一个很大的数和一个很小的数直接相加或相减,否则会“丢失”较小的数。
(3)字符型数据和整型数据的混合使用(建立程序文件名为sy1-3.c)# include <stdio.h>void main(){char c1,c2;c1=65; c2=66;printf("%c %c\n",c1,c2);}程序运行结果:A B原因:c1,c2两个变量的类型为char型,在内存中分配1B的存储空间用于存放字符的ASCII码二进制,其存放的数据范围为0~255。
大一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语言考试答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A2. C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A3. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. caseD. do答案:C4. 在C语言中,哪个运算符用于计算两个整数的乘积?A. /B. *C. %D. ^5. 以下哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable!!D. variable$$答案:B6. C语言中,用于定义一个整型数组的语法是什么?A. int array[10];B. int [10] array;C. int array=10;D. int 10array;答案:A7. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlen()B. length()C. size()D. len()答案:A8. C语言中,用于打开文件的函数是?A. fopen()B. open()C. fileopen()D. file()答案:A9. 下列哪个选项是C语言中的逻辑运算符?B. ||C. !D. 所有选项都是答案:D10. 在C语言中,哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C二、填空题(每题2分,共20分)1. 在C语言中,用于声明一个字符变量的关键字是________。
答案:char2. 用于在C语言中声明一个浮点型变量的关键字是________。
答案:float3. C语言中,________运算符用于比较两个值是否相等。
答案:==4. 在C语言中,________关键字用于跳过当前循环的剩余部分,并开始下一次循环迭代。
C语言程序设计基础上机考试一题目及参考答案

1.输入一串字符(可能包含空格),计算输入的字符串中整数的个数并输出。
2.输入一个字符串,对字符串相同的字符只保留一个(首次出现的字符)。
3.找出一个大于给定整数m且紧随m的素数。
4.统计老年人各年龄段(每10岁为一个年龄段)的人数并存到b数组中,n个人员的年龄放在a数组中。
5.计算并输出k以内最大的10个能被13或17整除的自然数之和。
6.读入一行英文文本, 将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
7.求A、B两个整数数组数据的交集,并输出交集的数据。
8.输入若干个整数,且每个数均在1000至9999之间,按照每个数的后三位进行升序排序,若后三位相等,则按照原数据升序排序。
9.将字符串s所有的子串t用“copy”替换,并输出替换后的字符串。
10.判断一个整数是否是回文数。
所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。
例如:1221,121是回文数。
1.输入一串可能包含空格的字符串,计算该字符串中数字(整数)的个数。
2.删除字符串中的数字字符3.计算并输出high以内最大的10个素数之和。
4. A,B是两个整数集合,将A中和B相同的数据删除,并输出删除后的集合。
5.计算字符串s中含有字符串t的数目, 并输出。
6.编程实现:在已排好序的字符串中插入一个新的字符串,使插入后仍然有序,输出插入后的字符串。
7.在三位整数中寻找符合条件的整数,并依次有大到小存入数组,并输出,它既是完全平方数,又是两位数字相同。
8.判断一个整数是否是回文数。
所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。
例如:1221,121是回文数。
9.找出200以内所有的完数,并输出其因子。
一个数若恰好等于它的各因子之和,称其为完数。
例如:6=1+2+3,其中1、2、3为因子,6是因子和。
10.统计在字符串str中26个小写英文字母各自出现的次数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("sum =%f\n",total(n));
}
double total(int n)
{
int k;
double sum;
sum = 0;
for(k = 1; k <= n; k++)
sum = sum +1.0/k;
return sum;
}
程序5、
# include <stdio.h>
{ int i,n; float x,y;
scanf(“%d”,&n);
for(i=1;i<=n;i++){
scanf(“%f”,&x);
if(x<-2) y=x*x-sin(x);
else if(x<=2) y=pow(2,x)+x;
else y=sqrt(x*x+x+1);
printf(“%f\n”,y);
5、输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。
答案:
程序1、
#include <stdio.h>
void main ()
{ int n,i,x,sum=0;
while(scanf("%d",&n),n<=0);
else if (c>='0'&&c<='9') digit++;
else other++;
printf("letter=%d,digit=%d,other=%d\n", letter, digit, other);
}
程序4、
#include <stdio.h>
voiuble total(int n);
void main( )
{ int i,n;
float sum;
float fact(int n);
sum=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
sum += 1/fact(i);
printf("sum=%f\n", sum);
}
float fact(int n)
{ int i;
float f=1.0;
for(i=1; i<=n; i++)
f=f*i;
return f;
}
printf ("请输入%d个数:", n);
for (i=1; i<=n ;i++) {
scanf("%d",&x);
if(x%2==0) sum+=x;
}
printf ("sum=%d", sum) ;
}
程序2、
#include <stdio.h>
#include <math.h>
void main()
1、编制程序,输入n个整数(n从键盘输入,n>0),输出它们的偶数和。
2、编程,输入n后:输入n个数,根据下式计算并输出y值。
3、输入一行字符,统计并输出其中英文字母、数字字符和其他字符的个数。
4、编写程序,输入一个正整数n,计算并输出下列算式的值。要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n,函数返回值的类型是double。
}
}
程序3、
# include <stdio.h>
void main( )
{ int letter,digit,other;
char c;
letter=digit=other=0;
while((c=getchar())!='\n')
if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++;