c语言第八章函数上机作业

合集下载

第八章函数上机习题

第八章函数上机习题

第八章函数问题与思考1.有如下程序#include<stdio.h>long fib( int n){if(n>2) return(fib(n-1)+fib(n-2));else return(2);}void main( ){ printf("%d\n",fib(3));}该程序的输出结果是()A、2B、 4C、 6D、82.在C语言中,函数的隐含存储类别是()A、 autoB、 staticC、 externD、无存储类别3.以下所列的各函数首部中,正确的是()A、 void play(var:Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)4.以下程序的输出结果是()A、 0B、 29C、 31D、无定值fun(int x,int y,int z){ z=x*x+y*y;}main( ){ int a=31;fun(5,2,a);printf("%d",a);}5.以下程序的输出结果是()f(int b[ ],int m,int n){int I,s=0;for(i=m;i<n;i=i+2) s=s+b[i];return s;}main( ){int x,a[ ]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}A、10B、18C、8D、156.以下程序的输出结果是()A、1B、2C、3D、4long fun( int n){ long s;if(n==1 || n==2)s=2;else s=n-fun(n-1);return s;}main( ){ printf("%ld\n",fun(3));}7.以下程序的输出结果是()int f( ){ static int i=0;int s=1;s+=i;i++;return s;}main( ){ int i,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}A、20B、24C、25D、158. 以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。

(完整版)C语言8~13章复习题

(完整版)C语言8~13章复习题

第八章函数一、选择题1、以下正确的函数定义是(A )A) double fun(int x,int y) { }B) double fun(int x;int y) { }C) float fun(int x;y) { }D) float fun(int x,y) { }2、C语言中,函数返回值的类型是由( D )决定。

A)主调函数的类型B)return语句中表达式的类型C)由系统临时指定D)定义该函数时所指定的函数类型3、下列有关函数的说法正确的是( D )。

A)在C语言中,若对函数类型未加说明,则系统隐含类型为void。

B)C函数必须有返回值,否则无法使用。

C)C函数既可以嵌套定义,又可以可递归调用。

D)C函数中,形式参数必须指定为确定的类型。

4、用一维数组名作函数的实际参数,则传递给形式参数的是(A )A)数组首元素的地址 B)数组中第一个元素的值C)数组中元素的个数 D)数组中全部元素的值5、若已定义的函数有返回值,则有关该函数调用的叙述中错误的是(B )A)调用可以作为独立的语句存在B)调用可以作为一个函数的形参C)调用可以作为一个函数的实参D)调用可以出现在表达式中6、关于C语言中return语句正确的说法是(C )A)只能在主函数中出现 B)在每个函数中都必须出现C)可以在一个函数中出现多次 D)只能在除主函数之外的函数中出现7、如果在程序中使用了C库函数中的字符串函数,则应在源程序中使用的文件包含命令是(D )A)#include <stdio.h> B)#include <stdlib.h>C)#include <math.h> D)#include <string.h>8、已定义函数如下:int fun(int *p){ return *p;}则函数的返回值是(C )A)不确定的值 B)形参p中存放的值C)形参p所指存储单元的值 D)形参p的地址值9、以下叙述不正确的是(D )A)在不同的函数中可以使用同名的变量B)函数中的形式参数是局部变量C)在函数内定义的变量只在本函数范围内有效D)在函数内复合语句中定义的变量也可在本函数范围内有效10、以下正确的说法是(C )A)全局变量的的作用域一定比局部变量的作用范围大B)函数的形参可以是全局变量C)静态(static)变量的生存周贯穿于整个程序运行期间D)在定义变量时没有赋初值的auto变量和static变量的初值都是随机值11、下列关于C语言全局变量与局部变量的叙述中,错误的是(C )A) 函数调用结束时,函数中静态局部变量不释放内存空间,变量值保留B) 函数调用结束时,函数中动态局部变量释放内存空间,变量值消失C) 全局变量的生存周期是从程序开始到程序结束D) 在一个函数或复合语句中,当局部变量与已有的全局变量重名时,在该函数或复合语句中局部变量不起作用。

C语言程序设计上机指导第8章答案

C语言程序设计上机指导第8章答案
}
int max (int x,int y)
{ int z;
z=(x>y)? x: y;
return (z);
}
运行结果:
(2)以下程序求三角形的面积,请改正程序中的错误。
#include “stdio.h”
#include “math.h”
area(float, float, float);
void main()
return c;
}
void main ( )
{ int x;
scanf ("%d", &x);
printf ("%f\n", fun (x));
}
运行结果:
(2)以下程序对输入的一个整数,调用函数判断其是否是素数,是素数打印“YES”,否则打印“NO”。
# include “stdio.h”
int prime (int a)
程序清单:
#include "stdio.h"
float fun (int n,int m,int p)
{ int i;
float c;
c=0;
for (i=1; i<=n*m*p; i++)
if(i%n==0&&i%m==0&&i%p==0)
{
c=i;
break;
}
return c;
}
void main ( )
{ int i, yes=_______;
for (i=2; i<=a/2&& yes; i++)
if (_________%________==0) yes=0;

C语言上机

C语言上机

实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。

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

3、初步了解C程序的特点。

三、实验内容:说明:前三题为必做题目,后两题为选做题目。

1、输出入下信息:(实验指导书P3)*************************Very Good*************************2、计算两个整数的和与积。

(实验指导书P4)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。

(书P4)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。

四、实验答案:(代码+运行结果截屏)实验二简单的C程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。

2、学会使用C语言的运算符及表达式。

3、掌握不同数据类型的输入输出方法。

三、实验内容:说明:前四题为必做题目,后两题为选做题目。

1、输入r1、r2,求出圆形垫片面积。

(实验指导书P10)2、输入华氏温度h,输出摄氏温度c。

(实验指导书P11)3、从键盘输入一个3位整数,将输出该数的逆序数。

(实验指导书P14)4、输入并运行以下程序,分析运行结果。

#include <stdio.h>void main( )\'7b int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);\'7d5、输入三角形三条边的边长,求三角形的面积。

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语言基础7-8章例题

谭浩强C语言基础7-8章例题
a求数组a中的所有元素之和b求数组a中的所有元素之积c求数组a中部分元素之和d求数组a中部分元素之积第8章例3下列程序的输出结果是
例1
请读程序: #include <stdio.h> #include <string.h> main() { char s1[20]="AbCdEf", s2[20]="aB"; printf("%d\n",strcmp(s1,s2)); } 上面程序的输出结果是________。 A) 32 B) 0 C) -32 D) 不确定的值
例5
请读程序片段(注意字符串内没有空格): printf("%d\n",strlen("ATS\n012\1\\")); 上面程序片段的输出结果是————。 A) 11 B) 10 C) 9 D) 8
例6
给出以下定义: char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为 ________。 A) 数组x和数组y等价 B) 数组x和数组y的长度相同 C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度
#include <conio.h> #include <stdio.h> main( ) { long s, t, sl=10; clrscr(); printf("\nPlease enter s:"); scanf("%ld", &s); /************found************/ t = s / 10; while ( s > 0) { s = s/100; t = s%10 * sl + t; /************found************/ sl = sl*100; } printf("The result is: %ld\n", t); }

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语言上机作业试题5套含答案

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说:他乱说。

已知三个人说的是实话,一个人说的是谎话。

此刻要依照这些信息,找出做了好事的人。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章通过本章实验作业应达目标1. 掌握定义和调用函数的方法2.掌握函数嵌套调用的方法3.掌握通过“值传递”调用函数的方法4.理解变量作用域和存在期的概念,掌握全局变量和局部变量,动态变量和静态变量的定义、说明和使用方法本章上交作业程序8_1.c、8_2.c、8_4.c、8_5.c上传至211.64.135.121/casp。

实验一判断素数的函数【实验目的】掌握用函数实现判断素数的方法。

【实验内容】编写一个函数int prime(int a),判断参数是否为素数。

函数有一个形参a,当a 为素数时,返回1,反之,返回0。

以8_1.c命名本程序并上交。

函数声明如下:int prime( int a );主函数如下:#include<math.h>#include<stdio.h>void main ( ){int a, b;printf("please input a number:\n");scanf("%d", &a);b = prime( a );if ( b = =1 )printf("the number is a prime number.");elseprintf("the number is not a prime number.");}int prime( int a ) { …… }实验二求最大公约数与最小公倍数【实验目的】熟练函数的嵌套调用。

【实验内容】编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回。

在main函数中实现输入与输出。

以8_2.c命名本程序并上交。

主函数如下:#include<stdio.h>void main( ){int gongyueshu( int a, int b );int gongbeishu( int a, int b );int a, b, c, d;printf("please input two integer numbers:");scanf("%d%d", &a, &b);c=gongyueshu(a, b);d=gongbeishu(a. b);printf("gongyueshu is %d\n gongbeishu is %d",c,d);}int gongyueshu( int a, int b ){ ……}int gongbeishu( int a, int b ){ …… }【实验提示】可以在最小公倍数中嵌套调用最大公约数函数。

最小公倍数=a*b/最大公约数实验三求数组逆序的函数【实验目的】熟练掌握操作数组的方法及数组名作函数参数的使用方法。

【实验内容】从键盘输入int型数组a[ 20 ]的20 个元素值,编写一个函数实现对数组元素数据的逆序放置。

即第1个元素与第20个元素互换,第2个元素与第19个元素互换,……,第10个元素与第11个元素互换。

请完善下述程序并以8_3.c命名本程序。

#include<stdio.h>void main( ){void nixu( int a[ ], int n ); /* 逆序函数声明 */int a[20],x;for (x=0;x<20;x++ )scanf("%d",&a[x]);printf("Before invert,the array is:\n");for (x=0;x<20;x++ )printf("%d ",a[x]);printf(“\n”);nixu(a,20); /* 调用逆序函数,注意实参是什么 */printf("\nAfter invert,the array is:\n");for (x=0;x<20;x++ )printf("%d ",a[x]);printf(“\n”);}void nixu(int a[ ], int n){int i, t;for (i=0;i<________; i++){ t=a[i]; ________; a[n-1-i]=t; }}实验四数组中插入元素的函数【实验目的】学习在一维数组中插入元素的方法。

【实验内容】参照给定的主函数,编写一个函数void insert(int a[ ], int n, int y ),它的功能是:把y值插入到有n个数的有序的a数组中, y的值从键盘读入。

插入后,数组中的数仍然有序。

以8_4.c命名本程序并上交。

对照下面三种情况运行程序:1)插在最前2)插在最后3)插在中间。

int a[11]={2,4,6,8,10,12,14,16,18,20};void insert( int a[ ], int n, int number );void main( ){int i, x ;printf("original array is:\n");for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("insert a new number:");scanf("%d",&x);insert(a,10,x);for(i=0;i<11;i++)printf("%d ",a[i]);}void insert( int a[ ], int n, int number ){ …… }若输入数11,输出 2 4 6 8 10 11 12 14 16 18 20输入数1,输出 1 2 4 6 8 10 12 14 16 18 20输入数33,输出 2 4 6 8 10 12 14 16 18 20 33【实验提示】1.若x插入数组的中间,插入后此元素之后的数,依次后移一个位置。

例如查找到 11应该放置在a[ 5 ] 的位置上,原来a[5]的数据 12 以及其后的所有元素后移一位。

2.后移元素的过程,应该注意从数组的末尾开始依次a[n]=a[n-1],a[n-1]=a[n-2]……实验五报数问题【实验目的】掌握数组和函数的应用。

【实验内容】n个人围成一圈,1,2,3循环报数,报到3的人退出。

到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。

若n=6,则输出1;若n=10,则输出4;若n=100,则输出91。

编写函数,n作函数参数,函数返回结果。

以8_5.c命名本程序并上交。

#include<stdio.h>int baoshu( int n ){ …… }void main( ){int m ;scanf( "%d", &m ) ;printf( "n=%d\n", baoshu(m) ) ;}【实验提示】在初始化数组时,以1至n为序给每个人编号,分别设置三个计数器,一个用来表示数组的下标,一个用来表示退出的人数,另外一个表示报数时的计数器变量。

每次当某变量报数为3时,将该数组元素置0,当退出人数达到n-1时,推出循环。

最后返回数组中的唯一一个非零元素。

实验六全局变量与局部变量【实验目的】掌握全局变量和局部变量在程序中的关系。

【实验内容】下面的程序运行后的结果是_____________。

int x=3, y=5;int max( int x, int y ){int z;z=x>y?x:y;return(z);}void main( ){int x=8;printf( "max=%d\n",max(x,y) );}实验七变量的静态存储方式【实验目的】熟悉static定义静态变量的用法。

【实验内容】下面程序运行后的输出结果是_____________。

#include<stdio.h>varfunc( ){ int var=0;static int static_var=0;printf("\40:var equal %d \n",var);printf("\40:static var equal %d \n",static_var);printf("\n");var++;static_var++;}void main( ){ int i;for(i=0;i<3;i++)varfunc();}习题1.有如下程序#include<stdio.h>long fib( int n){if(n>2) return(fib(n-1)+fib(n-2));else return(2);}void main( ){ printf("%d\n",fib(3));}该程序的输出结果是()A、2B、 4C、 6D、82.在C语言中,函数的隐含存储类别是()A、 autoB、 staticC、 externD、无存储类别3.以下所列的各函数首部中,正确的是()A、 void play(var:Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)4.以下程序的输出结果是()A、 0B、 29C、 31D、无定值fun(int x,int y,int z){ z=x*x+y*y;}main( ){ int a=31;fun(5,2,a);printf("%d",a);}5.以下程序的输出结果是()f(int b[ ],int m,int n){int I,s=0;for(i=m;i<n;i=i+2) s=s+b[i];return s;}main( ){int x,a[ ]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}A、10B、18C、8D、156.以下程序的输出结果是()A、1B、2C、3D、4long fun( int n){ long s;if(n==1 || n==2)s=2;else s=n-fun(n-1);return s;}main( ){ printf("%ld\n",fun(3));}7.以下程序的输出结果是()int f( ){ static int i=0;int s=1;s+=i;i++;return s;}main( ){ int i,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}A、20B、24C、25D、158. 以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。

相关文档
最新文档