C语言上机内容(3)

合集下载

C语言上机题参考答案

C语言上机题参考答案
}
20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);

C程序上机步骤

C程序上机步骤

C程序上机步骤1 运行一个C语言程序的一般过程Turbo C是一个集源程序编辑、编译、连接、运行与调试于一体,用菜单驱动的集成软件环境。

运行一个C语言程序的一般过程:(1)启动TC,进入TC集成环境。

(2)输入与编辑源程序。

编辑后文件的扩展名为:.c。

(3)对源程序进行编译。

如果编译成功,则可进行下一步操作;否则,返回(2)修改源程序,再重新编译,直至编译成功。

编译成功后文件的扩展名为:.obj 。

(4)与库函数进行连接。

如果连接成功,则可进行下一步操作;否则,根据系统的错误提示,进行相应修改,再重新连接,直至连接成功。

连接成功后的可执行文件的扩展名为:.exe 。

(5)运行可执行的目标程序。

通过观察程序运行结果,验证程序的正确性。

如果出现逻辑错误,则必须返回(2)修改源程序,再重新编译、连接和运行,直至程序正确。

2 TC的启动、退出与命令菜单(1)启动Turbo C:t c ←┘启动Turbo C后,其主菜单条横向排列在屏幕顶端,并被激活,其中File主项成为当前项。

主菜单的下面,是Edit(编辑)窗口和Message(消息)窗口。

两个窗口中,顶端横线为双线显示的,表示该窗口是活动窗口。

进入Turbo C 2.0集成开发环境中后, 屏幕上显示:其中顶上一行为Turbo C 2.0 主菜单, 中间窗口为编辑区, 接下来是信息窗口, 最底下一行为参考行。

这四个窗口构成了Turbo C 2.0的主屏幕, 以后的编程、编译、调试以及运行都将在这个主屏幕中进行。

主菜单在Turbo C 2.0主屏幕顶上一行, 显示下列内容:File Edit Run Compile Project Options Debug Break/watch除Edit外, 其它各项均有子菜单, 只要用Alt加上某项中第一个字母, 就可进入该项的子菜单中。

编辑窗口的顶端为状态行,其中:.Line 1 Col 1:显示光标所在的行号和列号,即光标位置。

7-8-C语言上机考试试题3

7-8-C语言上机考试试题3

C语言上机考试试题-3一、选择题(评分标准 20 分,每小题2分)1. 以下选项中可作为C语言合法常量的是________。

(A) -80. ( B) -080 (C) (D)2. 以下叙述中正确的是________。

(A) 用C程序实现的算法必须要有输入和输出操作(B) 用C程序实现的算法可以没有输出但必须要输入(C) 用C程序实现的算法可以没有输入但必须要有输出(D) 用C程序实现的算法可以既没有输入也没有输出3. 已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是________。

(A) 数组a和b的长度相同 (B) a数组长度小于b数组长度(C) a数组长度大于b数组长度 (D) 上述说法都不对4. 以下叙述中错误的是________。

(A) 数组名代表的是数组所占存储区的首地址,其值不可改变。

(B) 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息。

(C) 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。

(D) 可以通过赋初值的方式确定数组元素的个数。

5. 以下叙述中正确的是________。

(A) 预处理命令行必须位于源文件的开头(B) 在源文件的一行上可以有多条预处理命令(C) 宏名必须用大写字母表示(D) 宏替换不占用程序的运行时间6. 表达式strlen(”hello”) 的值是________。

(A)4 (B)5 (C)6 (D)77. 设变量定义为“int a, b;”,执行语句scanf(“a=%d, b=%d”,&a, &b);时,输入________,则a和b的值都是10。

(A)10 10 (B)10, 10 (C)a=10 b=10 (D)a=10, b=108. 以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是_______。

C语言上机操作指导

C语言上机操作指导

C语言上机操作指导在学习C语言过程中,上机操作是非常重要的一部分。

通过上机实践,我们可以巩固所学的理论知识,培养编程思维,提高解决问题的能力。

本文将为大家提供C语言上机操作的指导,帮助大家更好地进行实践。

一、实验环境准备在进行C语言上机操作之前,我们首先需要准备好实验环境。

具体步骤如下:1. 安装编译器:选择一款适合的C语言编译器,如Dev-C++、Code::Blocks等,并按照其官方指南进行安装。

2. 创建项目:打开编译器,创建一个新项目。

根据需要选择控制台应用程序或者窗口应用程序。

3. 配置编译器:在项目设置中,确认编译器配置正确,比如选择合适的C语言标准、设置输出文件路径等。

二、实验内容安排在进行C语言上机操作时,为了有效利用时间,我们需要合理安排实验内容。

以下是一个常见的实验内容安排,供大家参考:1. 熟悉开发环境:掌握编译器的基本使用方法,学会创建、保存、运行项目等操作。

2. 简单程序实现:从简单的程序开始,如输出Hello World、计算两个数的和等。

逐步熟悉C语言的基本语法和编程逻辑。

3. 变量与数据类型:掌握变量的定义和使用方法,了解各种基本数据类型的特点及其使用场景。

4. 条件语句和循环结构:学习if-else语句、switch语句、while循环、for循环等,掌握条件判断和循环控制的基本方法。

5. 数组和字符串:了解数组和字符串的概念,学习如何声明、初始化和访问数组,以及常见的字符串操作方法。

6. 函数和指针:了解函数的定义和调用,学习如何传递参数和返回值。

同时,也要熟悉指针的概念和使用方法。

7. 文件操作:学习如何打开、读写和关闭文件,实现文件的基本输入输出。

8. 综合实例:通过一些综合实例,将之前所学的知识进行综合运用,提升实际编程能力。

三、实验操作步骤在进行C语言上机操作时,我们需要按照一定的步骤进行操作。

以下是一个常见的实验操作步骤,供大家参考:1. 阅读实验要求:在开始实验之前,仔细阅读实验要求和题目描述,明确任务目标和具体要求。

c语言程序设计上机指导与习题选解答案

c语言程序设计上机指导与习题选解答案

c语言程序设计上机指导与习题选解答案C语言程序设计上机指导与习题选解答案C语言是一门广泛应用于计算机科学领域的编程语言,具有高效、灵活和可移植性等特点。

对于初学者来说,掌握C语言的基本知识和编程技巧是非常重要的。

本文将为大家提供一些C语言程序设计上机指导和习题选解答案,希望对大家的学习有所帮助。

一、C语言程序设计上机指导1. 编写一个程序,实现两个整数的加法运算。

```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#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该整数是偶数。

\n");} else {printf("该整数是奇数。

\n");}return 0;}```3. 编写一个程序,计算一个整数的阶乘。

```c#include <stdio.h>int main() {int num, i;long long factorial = 1;printf("请输入一个整数:");scanf("%d", &num);for (i = 1; i <= num; i++) {factorial *= i;}printf("%d的阶乘为:%lld\n", num, factorial);return 0;}```二、习题选解答案1. 编写一个程序,将一个字符串中的所有小写字母转换为大写字母。

《C语言程序设计基础》上机实验报告(模版)

《C语言程序设计基础》上机实验报告(模版)

成都信息工程学院计算机系






(说明:实验报告必须包含下面的每项内容,根据实验情况认真填写,封面必须打印或复印(A4纸),书写上机实验报告内容的纸张也用A4纸,最后从侧面装订)
一【上机实验目的】
(上机实验目的见老师给的上机实验计划表)
二【实验环境】
PC机每人1台
三【上机实验内容】
(此次上机实验老师布置的具体任务)
四【上机调试程序流程图】(注:可打印)
(可用盒图表示,也可用流程图的形式表示)
五【上机调试中出现的错误信息、错误原因及解决办法】
(记录下你调试程序中出现的错误信息的英文提示,分析出错原因及可能的解决办法)
六【上机调试后的源程序及还存在的问题】(注:源程序可打印)(如你的程序没有问题可不写,但可记录下你对你编写此程序的其它具体想法,)
七【上机实验中的其他它问题及心得】
(在上机实验中遇到的你不能解决的其它问题,如非C语言程序调试的问题等,简单描述一下你此次上机的收获及感想)。

C语言上机试题资料

C语言上机试题资料

C语言上机试题资料1、从键盘输入一字符串和一个字符,统计字符串中所含这个字符的个数。

2、求9000到9999整数中,每个数中间两位数字组成的两位数之和。

3、写一个函数,判断一个字符串是否为回文(如下的字符串为回文:asdfdsa,qryggyrq 即字符串是中心对称的),在主函数中输入字符串和输出回文信息。

4、从键盘中输入一个4位整数,判断这个整数的每位数字是否是一个连续的数字,如果是输出“yes”,否则输出“no”。

例如:如果输入:5678 就应输出:yes 。

4、输入10个整数,求这10个数中最大数与最小数之和。

6、写一个函数,判断两个数是否互素(即两个数的最大公约数为1),用主函数调用这个函数,并输出结果,两个数由键盘输入。

7、输入一个整数n,输出:1*2+2*3+3*4+。

+n*(n+1)的和8、输入一个字符串s1,求一个新字符串s2,使s2的前半部分是s1的偶数位上的字符,后半部分是s1奇数位上的字符。

10、输入一个4位数,判断这个四位数的每一位上的数字是否都为偶数,是输出:yes,否则输出:no 。

11、有一个10个整数的数组,从键盘输入一个整数,查找这个数是否在数组中,如果在数组中,则把它从数组中删去,输出处理后的数组。

12、写一个函数,判断一个整形矩阵(4x4)是否为对称矩阵,在主函数中输入矩阵和输出对称信息。

13、输入一字符串,统计其中含有小写英文字母的个数。

14、输入两个字符串s1,s2(s1比s2长),用s2替换s1中前端等长的字符串。

如:s1=”adfsdadsfas”, s2=”kfghg”,替换后的s1=”kfghgadsfas”。

16、输入一个四位数字,判断千位和百位组成的两位数与十位和个位组成的两位数是否相等,相等输出:yes,否则输出:no 。

17、输入一个字符串,输出这个字符串中最大的字符与最小的字符。

18、写一个函数,将一个字符串中的小写元音字母替换成数字:a->1,e->2,i->3,o->4,u->5,在主函数中输入原字符串和输出替换后的字符串。

C语言上机实验

C语言上机实验

实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。

2.熟悉编译环境。

3.初步熟悉C语言程序的语法规定。

4.了解简单函数的使用方法。

实验内容:1.编程且上机运行:求3个整数的和。

2.编程且上机运行:求2个数的和、差、积和商。

3.编程且上机运行:输入3个数,求最大值。

4.编程且上机运行:输入圆的半径,求圆的面积和周长。

5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。

实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。

实验过程:实验结果:参见各种类型的存储实现描述。

2.实验目的:了解混合类型计算中类型的转换规则。

实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。

注意unsigned int和int数据运算时类型转换的方向。

实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。

C语言上机题库百科园第3章!南信大!

C语言上机题库百科园第3章!南信大!
( % 7 0)
(“ “, x);
}
(“\n”);
}
A.28 70
B.39 81
C.42 84
D.26 68
14.以下程序段中,与语句:>b?(b>c?1:0):0;功能相同的是()
((a>b)(b>c)) 1;
0;
((a>b)(b>c)) 1;
0;
(a>b) 1;
(b>c) 1;
0;
(a<) 0;
第三章
1.为表示关系x≥y≥z,应使用的表达式是
A.(x>)(y>)
B.(x>>)
C.(x>)(y>)
D.(x>)&(y>)
2.有以下程序
()
{ i;
(0; i<3; )
(i)
{ 1: ("", i);
2: ("", i);
: ("", i);
}
}
执行后输出结果是
A.011122
B.120
C.012020
B.有语法错误不能通过编译
D.****
12.下面的程序片断所表示的数学函数关系是
y = -1;
(x 0) y = 1;
(x > 0) y = 1;
y = 0;
A.
B.
C.
D.
13.以下程序的输出结果是
()
{ x, i;
(i = 1; i <= 100; )
{ x = i;
( % 2 0)
( % 3 0 )
()
{
0;

C语言上机考试3

C语言上机考试3

一、单项选择1.题号:4889以下函数挪用语句中,实参的个数是(). exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6A、能够在同一个函数中,显现多次B、在主函数和其他函数中,都可显现C、必需在每一个函数中,显现D、只能在除主函数之外的函数中,显现一次A、该数组的首地址B、该数组的元素个数C、该数组中各元素的值D、该数组的长度答案:A2.题号:4525在C语言的函数中,以下正确的说法是().A、数组名不能作形参B、能够有也能够没有形参C、形参必需是变量名D、必需有形参答案:B3.题号:4083以下正确的函数概念形式是().A、double fun(int x,int y)B、double fun(int x;int y)A、main()B、#include""C、scanfD、printf答案:A4.题号:4048下面对函数的表达,正确的选项是().A、函数中不论是不是有return语句,都能返回正确值B、函数中没有return语句,说明不带回值C、函数不能嵌套概念D、函数的返回值是通过return语句取得的答案:C5.题号:4073在挪用函数时,假设是实参是简单变量,它与对应形参之间的数据传递方式是().A、传递方式由用户指定B、由实参传给形参,再由形参传回实参C、地址传递D、单向值传递答案:D6.题号:5119以下关于函数的表达中正确的选项是().A、每一个函数都能够单独运行A、5B、3C、2D、4答案:C7.题号:4901在C语言中,形参的缺省存储类是().A、staticB、registerC、autoD、extern答案:C8.题号:4507C语言规定,在一个源程序中,main()函数的位置.A、必需在最开始B、必需在系统挪用的库函数的后面C、能够任意D、必需在最后答案:C9.题号:4847以下表达中,正确的选项是().A、main()可作为用户标识符,用以命名任意一个函数作为主函数B、C语言程序将从源程序中,第一个函数开始执行C、能够在程序中,由用户指定任意一个函数作为主函数,程序将从此开始执行D、C语言规定必需用main()作为主函数名,程序将从此开始执行,在此终止答案:D10.题号:5137以下函数的类型是fff(float x){printf("%d\n",x);}A、能够在任意位置B、必需在程序的最后C、必需在程序的开始D、必需在系统挪用的库函数以后答案:A11.题号:4112C语言规定,函数返回值的类型是().A、由return语句中的表达式类型所决定B、由挪用该函数时的主调函数类型所决定C、由挪用该函数时系统临时决定D、由概念该函数时所指定的数值类型决定答案:D12.题号:4804以下所列的函数"首部"中,正确的选项是().()A、void play(int a,b)B、void play(int a,int b)C、void play(a:int,b:int)D、void play(a as int,b as int)答案:B13.题号:4432有以下函数概念:int fun(double a,double b){return a*b;}假设以下选项中,所用变量都已正确概念并赋值,错误的函数挪用是().A、z=fun(fun(x,y),fun(x,y));B、z=fun(fun(x,y)x,y);C、if(fun(x,y)){……}D、fun(x,y);答案:B14.题号:5050关于void 类型函数,调历时不可作为().A、if语句的成份语句B、表达式C、循环体里的语句D、自概念函数体中的语句A、必需在主调函数中,说明此数组的大小B、实参数组类型与形参数组类型能够不匹配C、实参数组名与形参数组名必需一致D、在被挪用函数中,不需要考虑形参数组的大小答案:A15.题号:4696在C语言中,挪用函数除函数名外,还必需有().A、实际参数B、()C、函数预说明D、函数返回值答案:B16.题号:4892以下错误的描述是:函数挪用能够().A、做为一个函数的实参B、做为一个函数的形参C、出此刻一个表达式中D、出此刻执行语句中A、数组每一个元素中的值B、数组的首地址C、数组的长度D、数组每一个元素的地址答案:B17.题号:5014假设用数组名作为函数的实参,传递给形参的是().A、数组的首地址B、数组元素的个数C、数组第一个元素的值D、数组中,全数元素的值答案:A18.题号:4843假设是在一个函数中的复合语句中,概念了一个变量,以下正确的说法是().A、该变量在本程序范围内均有效B、该变量只在该复合语句中,有效C、该变量在该函数中,有效D、该变量在主函数中,有效答案:B19.题号:4319C语言中,规定,程序中,各函数之间().A、既许诺直接递归挪用或许诺间接递归挪用B、许诺直接递归挪用不准诺间接递归挪用C、不准诺直接递归挪用许诺间接递归挪用D、不准诺直接递归挪用也不准诺间接递归挪用答案:A20.题号:5062凡是函数中,未指定存储类别的局部变量,其隐含的存储类别为().A、自动(auto)B、静态(static)C、外部(extern)D、寄放器(register)答案:A21.题号:4672以下表达中,正确的选项是().A、组成C程序的大体单位是函数B、main()函数必需放在其它函数之前C、所有被挪用的函数必然要在挪用之前进行概念D、能够在一个函数中,概念另一个函数答案:A22.题号:4236全局变量的概念不可能在().A、最后一行B、文件外面C、函数内部D、函数外面答案:C23.题号:4754以下对C语言函数的描述中正确的选项是().A、C程序中有挪用关系的所有函数必需放在同一个程序文件中B、C函数既能够嵌套概念又能够递归挪用A、staticB、autoC、无存储类别D、extern答案:B24.题号:4578假设已概念的函数有返回值,那么以下关于该函数挪用的表达中,错误的选项是().A、函数挪用能够作为一个函数的形参B、函数挪用能够作为独立的语句存在C、函数挪用能够作为一个函数的实参D、函数挪用能够出此刻表达式中,答案:A25.题号:4537以下正确的函数声明语句是().A、int add(int a,int b)A、1990B、1996C、2000D、1992答案:A26.题号:5040以下表达中,不正确的选项是().A、在一个函数内概念的变量只在本函数范围内有效B、在一个函数内的复合语句中,概念的变量在本函数范围内有效A、实参与形参是双向传递函数说明语句的三种形式:int max(int a,int b);答案:正确1.题号:4577静态局部变量是在编译时被初始化的,故它只被赋初值一次.答案:正确2.题号:4846gets 函数是用来输入一个字符的函数.答案:正确3.题号:4767函数调历时,实参和形参在类型上应按位置与形参一一对应匹配;假设是类型不匹配,通常编译器并非给出犯错信息.答案:正确4.题号:4984一个C程序只能由一个主函数组成答案:正确5.题号:4989C语言中return语句能够返回函数值.假设是return语句后表达式的值与函数说明的类型不一致,那么以return语句的表达式类型为准,系统将自行转换.答案:错误6.题号:4783通过return语句,函数能够带回一个或一个以上的返回值.答案:正确7.题号:4175在C语言中,不准诺函数嵌套概念,但函数能够嵌套挪用.答案:正确8.题号:4689return 语句能够在同一个函数中显现多次.答案:正确9.题号:4097每次挪用函数时,都要对静态局部变量从头进行初始化.答案:正确10.题号:4584函数调历时,要求实参与形参的个数必需一致,对应类型一致.答案:正确11.题号:4055C语言程序老是从main()函数开始执行.答案:正确12.题号:4161没有初始化的整型静态局部变量的初值系统均默以为0.答案:正确13.题号:4349在C语言的函数中,必需有形参.答案:错误14.题号:5108在C语言中,函数能够嵌套概念,但不能嵌套挪用.答案:错误二、填空题==================================================1.题号:4286在函数中,需要返回一个结果时,能够利用_____语句.答案:空1:return2.题号:4371函数的_____挪用是一个函数直接或间接地挪用它自身.答案:空1:递归3.题号:4333C语言中,格式输入操作是由库函数_____完成的,格式输出操作是由库函数_____完成的.答案:空1:scanf空2:printf4.题号:4373C源程序中的主函数的名称必需是_____。

C语言程序设计 上机实验指导与习题 参考答案(第四版)

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语言的运行环境、运行过程和表达式的使用一、目的与要求1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。

2、了解在该系统上如何编辑、编译、连接和运行一个C程序。

3、通过运行简单的C程序,初步了解C源程序的特点。

4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

5、学会使用C的有关算术运算符,以及包含这些运算符的表达式二、实验例题【例1】编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for.在Turbo C的集成环境下,键入如下源文件。

敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认noname.c文件名改为任意文件名。

程序example.c如下:main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}然后用Ctrl+F9执行example.c,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。

按回车键重新返回Turbo C的编辑环境。

注意,在运行程序之前最好先存盘。

【例2】输入并运行程序,写出运行结果。

main(){int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}运行方法同上,最后结果为:sum is 579。

【例3】输入并运行程序,写出运行结果。

main(){int a,b,c;int max(int,int);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);}int max(int x,int y){int z;if (x>y) z=x;else z=y;return(z);}这个程序的功能是对于任意输入的两个整数,输出较大的那个数。

C语言程序设计 上机实验指导与习题 参考答案

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语言》上机实验题及参考答案

《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语言上机题解答 (3)

C语言上机题解答 (3)
{scanf(“%d”,&x[j]); if(x[j])>0)positive++; else if(x[j]))negative++;}
printf (”positive=%d\n”, positive); printf (”negative=%d\n”, negative); return 0;}
若三元素中的第二个下标超过数组长#43;2; if(i3>=18) i3=i3%18; a3=a[i]+a[i2]+a[i3];
若三元素中的第二个下标超过数组长 度,则以数组首元素下标替代
if(a3<min)
min=a3; } for(i=0;i<18;i++)
a3存放每一相邻三元素之和
只要有一个整除, 后面无需判断,强 迫循环结束
for(j=2;j<=k;j++)
if(x[i]%j==0)break;
if(j>k) m++; }
符合素数条件
printf(“prime number=%d\n”,m);
return 0;}
4
有18个数围成一圈,求相邻三个数之和的最小数。
int main( )
int main( )
{float a[20], sum=0,avea;
循环输入20个数
int i,n=0;
for(i=0;i<20;i++) scanf("%f", &a[i]);
20个数求和
for(i=0;i<20;i++)
sum+=a[i];
求平均值

C语言上机操作指导

C语言上机操作指导

C 语言上机操作指导程序设计是实践性很强的过程,任何程序最终都必须在计算机上运行,以检验程序的正确与否。

因此在学习程序设计中,一定要重视上机实践环节,通过上机可以加深理解C语言的有关概念,以巩固理论知识,另一方面也可以培养程序调试的能力与技巧。

1(C语言程序的上机步骤按照C 语言语法规则而编写的C 程序称为源程序。

源程序由字母、数字及其它符号等构成,在计算机内部用相应的ASCII 码表示,并保存在扩展名为“(C”的文件中。

源程序是无法直接被计算机运行的,因为计算机的CPU 只能执行二进制的机器指令。

这就需要把ASCII 码的源程序先翻译成机器指令,然后计算机的CPU 才能运行翻译好的程序。

源程序翻译过程由两个步骤实现:编译与连接。

首先对源程序进行编译处理,即把每一条语句用若干条机器指令来实现,以生成由机器指令组成的目标程序(扩展名为“(OBJ”的文件)。

但目标程序还不能马上交计算机直接运行,因为在源程序中,输入、输出以及常用函数运算并不是用户自己编写的,而直接调用系统函数库中的库函数。

因此,必须把“库函数”的处理过程连接到经编译生成的目标程序中,生成可执行程序(扩展名为“(EXE”的文件),并经机器指令的地址重定位,便可由计算机运行,最终得到结果。

C语言程序的调试、运行步骤可以用图A-1 表示:图A-1 C 语言程序的调试、运行步骤图A-1 中,虚线表示当某一步骤出现错误时的修改路线。

运行时,无论是出现编译错误、连接错误,还是运行结果不对(源程序中有语法错误或逻辑错误),都需要修改源程序,并对它重新编译、连接和运行,直至将程序调试正确为止。

除了较简单的情况,一般的程序很难一次就能做到完全正确。

在上机过程中,根据出错现象找出错误并改正称为程序调试。

我们要在学习程序设计过程中,逐步培养调试程序的能力,它不可能靠几句话讲清楚,要靠自己在上机中不断摸索总结,它可以说是一种经验积累。

程序中的错误大致可分为三类:程序编译时检查出来的语法错误;连接时出现的错误;程序执行过程中的错误。

c语言上机试题库及答案

c语言上机试题库及答案

c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。

```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。

```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。

c语言上机考试试题

c语言上机考试试题

c语言上机考试试题C语言上机考试试题在计算机科学领域中,C语言是一门非常重要的编程语言。

它的简洁性和高效性使得它成为了许多程序员的首选。

而在学习C语言的过程中,上机考试是不可或缺的一环。

本文将为大家提供一些常见的C语言上机考试试题,帮助大家更好地准备考试。

一、基础知识题1. 请简述C语言的特点和优势。

2. 什么是变量?请举例说明。

3. 请解释C语言中的数据类型,并列举一些常见的数据类型。

4. 请解释C语言中的运算符,并列举一些常用的运算符。

5. 请解释C语言中的控制语句,并列举一些常见的控制语句。

二、编程题1. 编写一个程序,要求用户输入两个整数,然后输出它们的和、差、积和商。

2. 编写一个程序,要求用户输入一个正整数N,然后计算并输出1到N的所有正整数的和。

3. 编写一个程序,要求用户输入一个字符串,然后判断该字符串是否是回文字符串(即正向和反向读都相同)。

4. 编写一个程序,要求用户输入一个正整数N,然后输出N的所有因子。

5. 编写一个程序,要求用户输入一个字符串,然后统计并输出该字符串中的字母、数字和其他字符的个数。

三、综合题1. 编写一个程序,要求用户输入一个正整数N,然后输出N的阶乘。

2. 编写一个程序,要求用户输入一个正整数N,然后判断该数是否为素数。

3. 编写一个程序,要求用户输入一个正整数N,然后输出N个斐波那契数列的元素。

4. 编写一个程序,要求用户输入一个字符串,然后将字符串中的所有小写字母转换为大写字母,并输出转换后的字符串。

5. 编写一个程序,要求用户输入一个正整数N,然后输出一个N行的等腰三角形。

通过以上的试题,我们可以看到,C语言上机考试试题涵盖了C语言的基础知识、编程技巧和综合应用。

在备考过程中,我们需要掌握C语言的特点和优势,了解各种数据类型和运算符的使用方法,熟练掌握控制语句的应用,同时还需要有一定的编程能力和逻辑思维能力。

在解答试题时,我们需要仔细阅读题目要求,理清思路,合理设计程序结构,注意变量命名规范,避免出现语法错误和逻辑错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
6.补充程序Ccon621.C,计算[1,100]区间内所有奇数之和及所有偶数之和。
#include <stdio.h>
#include <conio.h>
void main()
{ int asum,bsum,a,i;
asum=bsum=/**/ /**/;
for(i=1; /**/ /**/;i+=2)
{ int a=65;
char c='A';
printf("%d+%c=%d\n",a,c,a+c);
}
A.A+A=AA B.65+A=65AC.65+65=130 D.65+A=130
6、表达式2.5+5/2+3%10的值是()。
A. 8.3B.5.3C. 7.5D. 6.5
7、下列能正确表示x属于区间[-1,1]的逻辑表达式是()。
16、以下程序段运行后,c的值是()。
int a=7,b=10,c;
c=a&(b>>2);
A. 5 B.10C. 1 D. 2
17、在结构化程序设计中,使用的三种基本控制结构是()。
A.顺序结构、循环结构和嵌套结构B.选择结构、循环结构和函数结构
C.顺序结构、选择结构和文件结构D.顺序结构、选择结构和循环结构
18、以下程序运行后的输出结果是()。
#include<stdio.h>
int main()
{int m.n=1,t=1;
if(t!=1)t=-t;
else m=(n>=0?6ห้องสมุดไป่ตู้3);
print("%d\n",m);
return 0;
}
A.-1 B.0C. 3 D. 6
19、若已定义:int a=5,b=3;以下程序运行后的输出结果是()。
{ asum+=i;
a=/**/ /**/;
bsum+=a;
}
printf("asum=%d\n",asum);
printf("bsum=%d\n",bsum);
getch();
}
A. scanf(“%d%lf”,a,x);
B. scanf(“%d%lf”,&a,&x);
C. sacnf(“%d%f”,&a,x);
D. scanf(“%d%f”,a,&x);
15、以下程序段运行后,c的值是()。
int a=2,b=3,c;
c=(a^b)<<2;
A. 11B.4C. 12D. 3
A. -1<=x<=1B. x>=-1||x<=1
C. x>=-1&&x<=1D. 1>=x>=-1
8、语句printf(“%c,%d\n”,’A’+1,66);的输出结果是()。
A. B,BB. 66,66C. 66,BD. B,66
9、表达式:rand()%10/10.0可以产生()。
A. 0到9之间的随机数B. 0到0.09之间的随机数
printf("\nfun(%.3f,%.3f) = %.3lf\n",x,y,fun(x,y));
getch();
}
3.打开程序Cprog601.c,对double fun(float x)函数编程,使其计算:
例如:fun(0.450)=0.359
#include <stdio.h>
#include <math.h>
22、以下程序运行后的输出结果是()。
#include<stdio.h>
int main()
{int a=5,b=2,c=3,d=4;
if(a>b>c) printf("%d\n",d);
else if(c-1>=d) printf("%d\n",d+1);
else printf("%d\n",d+2);
C. 0到99之间的随机数D. 0到0.9之间的随机数
10、若已定义:int x,y;能判断x,y两变量值为异号数的逻辑表达式是()。
A. x>0||y<0B. x<0&&y>0
C. x*y<0D. x+y<0
11、若已定义:int a=1,b=2,c=3;则下列表达式值为0的是()。
A. a>b||a&&cB. a<=b
一.选择题
1.若已定义:int a=3,b=4,c=5;不正确的表达式是()。
A. a=c==0B. (double)c/a
C. a>b||a<=cD. a++=b-3=c
2、若已定义:int b,n=5;正确的语句是()。
A. b=++n;B. n+1=5;
C. b=n>5D. b=int(5.5);
scanf("%f,%f",&x,&y);
printf("fun(%.3f,%.3f)=%.3lf\n",x,y,fun(x,y));
getch();
}
2.打开程序Cprog591.c,对double fun(float x,float y)函数编程,使其计算:
例如:fun(2.250,1.280)=3.335
if(a>b)
a=b;
b=a;
else
a++;
b++;
printf("%d,%d\n",a,b);
A. 3.3 B.6.4C.无法运行D. 4.4
20、以下程序运行后的输出结果是()。
#include<stdio.h>
int main()
{int a=5;
if(a++>5)printf("%d\n",a);
return 0;
}
A. 2 B.3C. 4 D. 6
23、以下程序运行后的输出结果是()。
#include<stdio.h>
int main()
{int n=1;
switch(n)
{default:printf("%d",n++);
case 8:
case 7:printf("%d\n",n);break;
4.编程输出500-800之间的所有能被3和7同时整除的整数,并统计个数。
5.程序Ccon441.C的功能是:从键盘输入一个直角三角形的两条直角边a和b,计算并输出其周长和面积。将程序填写完整。
#include <stdio.h>
#include <math.h>
void main()
{
double a,b,c,circle,area;
else printf("%d\n",a++)
return 0;
}
A. 6 B.7C. 5 D. 4
21、若已定义:int x=0,a=1,b=2;下列()不能构成一条if语句。
A.if (x>0) a=b;else a=-b;B.if(x==0)a=1:b=2;
C.if(x=0);else a=-b;D.if(x<0);
}
A. 12=+345B. 12+345C. 12+=345D. 12,345
13、以下程序段运行后的输出结果是()。
inta,b;
printf(“%d\n”,(a=1,b=2,a+b));
A. 1B.3C. 4D. 2
14、若已定义:int a,double x;变量a和x能正确获取键盘输入值得语句是()。
#include <conio.h>
double fun(float x)
{ /**/
/**/
}
void main()
{ float x;
printf("Input x: ");
scanf("%f",&x);
printf("fun(%.3f)=%.3lf\n",x,fun(x));
getch();
}
3、若已定义:int a=5,b;则语句b=a++; b=a+1;执行后b的值为()。
A. 6B.8C. 5D. 7
4、取余数运算符”%”的两个操作数的数据类型()。
A.必须为浮点型
B.可以为整型或字符型
C.必须是整型或浮点型
D.可以是字符型或浮点型
5、以下程序的运行结果是()。
void main()
输入:5,-5输出:fun(5.000,-5.000)=0.023
输入:-6,13输出:fun(-6.000,13.000)=7.000
#include <stdio.h>
double fun(float x,float y)
{ /**/
/**/
}
void main()
{
float x,y;
printf("Input x,y: ");
C.‘a’||’b’D. !(a<b&&c)
12、要使以下程序运行后的输出结果为:12+345=357,正确的输入时()。
相关文档
最新文档