=0&&g{if(g>=90)A++" />

C语言--求平均值

C语言--求平均值
C语言--求平均值

#include "stdio.h"

#include "stdlib.h"

int main()

{

int n,i,g,A,B,C,D,E;

float sum,avg;

sum=0;A=0;B=0;C=0;D=0;E=0;n=0;avg=0;

printf("Enter n");

scanf("%d",&n);

for(i=1;i<=n;i++)

{scanf("%f",&g);

sum=sum+g;

avg=sum/n;

if(g>=0&&g<=100)

{if(g>=90) A++;

else if(g>=80) B++;

else if(g>=70) C++;

else if(g>=60) D++;

else E++;

}}

printf("A=%d B=%d C=%d D=%d E=%d",A,B,C,D,E);

printf("平均成绩=%f",avg);

system("pause");

return 0;

}

C语言顺序结构

第四章C语言顺序结构 4.1 C语句概述 一般来说,程序设计语言中的流程控制结构分为3种:顺序结构、选择结构和循环结构。 表达式语句由表达式加上分号“;”组成,其一般形式为:表达式; 函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式: 函数名(实际参数表) 控制语句用于控制程序的流程,以实现程序的各种结构方式。C语言中共有9种控制语句,可以将其分为如下3类: 复合语句:把多个语句用{}括起来组成的一个语句称为复合语句。在程序中应把复合语句看成是单条语句,而不是多条语句。 空语句:只有分号“;”组成的语句。 4.2 赋值语句 赋值语句是表达式语句的一种,是由赋值表达式再加上分号构成的表达式语句,其一般形式为:变量=表达式; 注意在变量声明中给变量赋初值和赋值语句的区别。给变量赋初值是变量声明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。例如int a=1,b;是在变量声明中对变量a赋初值,其等效于如下两条语句; int a,b; /*定义整型变量a,b*/ a=1; /*为变量a赋值*/ 在变量声明中,不允许给多个连续变量赋初值。下列说明是错误的:int a=b=c=1;,必须写为int a=1,b=1,c=1; 4.3 格式输入输出 格式输入输出即向标准输出设备显示器输出数据的语句。 4.3.1 printf函数——格式输出 printf函数称为格式输出函数,其关键字最末一个字母“f”即为格式(format)之意。printf函数的功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。 printf函数调用的一般形式为: printf(“格式控制字符串”,输出列表) 其中,格式字符串用于指定输出格式,可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位等。例如:“%d”表示按十进制整型输出,“%f”表示按十进制浮点型输出,“%c”表示按字符型输出。 类型符类型意义 d 以十进制形式输出带符号整数(整数不输出符号)

C语言选择题(三)

第七、八、九章选择题 1.C语言中的函数[1] [1] A.嵌套定义和嵌套调用均可 B.可以嵌套定义但不可以嵌套调用 C.嵌套调用和递归调用均可 D.可以嵌套调用但不可以递归调用 2.C语言中函数返回值的类型是由[2]决定的 [2] A. return语句中的表达式类型 B.调用函数时临时指定 C.定义函数时所指定的函数类型 D.对被调用函数声明时指定 3.下列调用函数的说法中不正确的是[3] [3] A.主调函数和被调函数可以不在同一文件中 B.实际参数和形式参数可以同名 C.若用值传递方式,则形式参数不予分配内存 D.函数间传递数据可使用全局变量 E.函数调用时,若形、实参数均为数组名,则其传递方式是地址传递方式 4.若用数组名作为函数调用时的实参,则实际上传递给形参的是[4] [4] A.数组中全部元素的值 B.数组的第一个元素的值 C.数组的首地址 D.数组元素的个数 5.void作为函数的参数时,表示[5] [5] A.该函数无返回值 B.实参可为任意值 C.函数无参数 D.该函数可返回任意值 6.下面对typedef 不正确的叙述是[6] [6] A.用typedef 可以定义各种类型名,但不能定义变量 B.使用typedef 有利于程序的通用和移植 C.用typedef可以增加新类型 D.用typedef 只是将已存在的类型用一个新的标识符表示 7.使用共用体union的目的是[7] [7] A.将一组相同数据类型的数据作为一个整体,以便程序中使用 B.将一组相同数据类型的数据作为一个整体,以便其中的成员共享同一存储空间 C.以便其中的成员共享同一存储空间 D.将一组相关数据作为一个整体,以便程序中使用 8.下列数据类型中不属于构造类型的是[8] [8]A.数组型 B.结构型 C.枚举型 D.共用型 9.在C语言中,[9]类型变量的所有成员以覆盖方式共享存储单元 [9]A.数组型 B.结构型 C.共用型 D.枚举型 10.若程序中含有定义: struct abc { int x;int y;} struct abc s1,s2;则[10] [10] A.能编译、链接、运行 B.能编译、链接,但不能运行 C.编译时出错 D.能编译、但链接出错 11.C语言中,对于存储类型为[11]的变量,只有在使用它们时才占用存储单元 [11] A. static 和auto B.register 和 extern

C语言顺序结构

第四章C语言顺序结构 4、1 C语句概述 一般来说,程序设计语言中得流程控制结构分为3种:顺序结构、选择结构与循环结构。 表达式语句由表达式加上分号“;”组成,其一般形式为:表达式; 函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式: 函数名(实际参数表) 控制语句用于控制程序得流程,以实现程序得各种结构方式。C语言中共有9种控制语句,可以将其分为如下3类: 复合语句:把多个语句用{}括起来组成得一个语句称为复合语句。在程序中应把复合语句瞧成就是单条语句,而不就是多条语句。 空语句:只有分号“;”组成得语句。 4、2 赋值语句 赋值语句就是表达式语句得一种,就是由赋值表达式再加上分号构成得表达式语句,其一般形式为: 变量=表达式; 注意在变量声明中给变量赋初值与赋值语句得区别。给变量赋初值就是变量声明得一部分,赋初值后得变量与其后得其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。例如int a=1,b;就是在变量声明中对变量a赋初值,其等效于如下两条语句; int a,b; /*定义整型变量a,b*/ a=1; /*为变量a赋值*/ 在变量声明中,不允许给多个连续变量赋初值。下列说明就是错误得:int a=b=c=1;,必须写为int a=1,b=1,c=1; 4、3 格式输入输出 格式输入输出即向标准输出设备显示器输出数据得语句。 4、3、1 printf函数——格式输出 printf函数称为格式输出函数,其关键字最末一个字母“f”即为格式(format)之意。printf函数得功能就是按用户指定得格式,把指定得数据显示到显示器屏幕上。printf函数就是一个标准库函数,它得函数原型在头文件“stdio、h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio、h文件。 printf函数调用得一般形式为: printf(“格式控制字符串”,输出列表) 其中,格式字符串用于指定输出格式,可由格式字符串与非格式字符串两种组成。格式字符串就是以%开头得字符串,在%后面跟有各种格式字符,以说明输出数据得类型、形式、长度、小数位等。例如: “%d”表示按十进制整型输出,“%f”表示按十进制浮点型输出,“%c”表示按字符型输出。 表4-1 d 以十进制形式输出带符号整数(整数不输出符号) f 以小数形式输出单、双精度实数

C语言复习题85424

一、填空: 1.整型数据变量声明中所使用的关键字是 int 。 2.设float x=2.5,y=4.7; int a=7;,表达式x+a%3*(int)(x+y)%2/4的值为 2.5 。 3.printf(“My age is %d.”, age); 函数中,使用%d表示输出的是整型类型的数 据。 4.每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 5.设int x=5,y,z;执行y=z=x;x=y==z;后,变量x的结果是 1 。 6. C 语言中,数组在内存中占一片的存储区,由代表它的首地址。数 组名是一个,不能对它进行赋值运算。 7.函数的参数为char *类型时,形参与实参结合的传递方式为。 8.C程序编译、连接后生成程序。 9.当a=10,b=4,c=2时,表达式f=a>b>c的值是。 10.字符串数组与字符数组的在长度至少一个元素。 11.若函数的形式参数是指针类型,则实参可以是或。 12.如定义语句为char a[ ]= "windows",b[ ]= "7";,语句printf("%s",strcat(a,b));的输出结果 为。 13.请在下面的程序段中填写正确的格式说明符: int main(void) { float salary; printf(“Enter your desired monthly salary:.”, salary); } 14.C程序编译后生成程序。 15. C 语言的标识符只能由、数字和三种字符组成。 16.设有定义int y; ,分别写出描述“y是偶数”的表达式,“y是奇 数”的表达式。 17.C语言没有字义专门的字符串变量类型,而是把它存储在数组中。 18.字符串常量"\\\22a,0\n\""的长度是。 19.字符串存储到数组中时,在数组的最后将增加一个标记字符串结束的字 符。 20.设有定义语句static int a[3][4] ={{1},{2},{3}}; 则a[1][0]值为,a[1][1] 值 为,a[2][1]的值为。 21.假设int a=7; 执行语句a+=a-=a*a; 后,a的值是。 22.若自定义函数要求返回一个值,则应在该函数体中有一条语句,若自定义 函数要求不返回一个值,则应在该函数说明时加一个类型说明符

C语言实验二程序、总结 顺序结构与输入、输出方法

实验二顺序结构与输入/输出方法 一实验目的 1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算 符的使用。 2 掌握C语言中赋值语句的使用。 3 掌握C语言中各种数据的输入/输出方法,能正确使用基本格式符。 二实验内容 1 输入下面的程序: #include main() { int i,j,m,n; i=8;j=10; printf("%d,%d,%d,%d\n",i,j,m,n); /* 第5行 */ m=++i; n=j++; /* 第6行 */ printf("%d,%d,%d,%d\n",i,j,m,n); /* 第7行 */ } 运行程序,分析第5行和第7行输出的不同。 调试分析:因为第五行的m,n没有赋初值,所以对应的m,n输出是乱的数字,第七行的m,n在第六行已赋初值,且i和j也相应的自加,结果如下图 ⑴将第6行按如下修改以后再运行,分析第5行和第7行输出的不同。 m=i++; n=++j; /* 第6行 */ 调试分析:m=i++是(m=i,i=i+1)。 n=++j;是(j=j+1,n=j)结果如 下图 ⑵在程序最后增加两行,记录并分析该行的输出。 i=j=8; /* 第8行 */ printf("%d,%d,%d,%d\n",i,++i,j,j++); /* 第9行 */ 调试分析:结果如下图

2 运行以下程序,并分析输出结果 #include main() { int a=-2; long b; float c; b=20000+20000; c=1.23e-1; printf("a=%d,%3d,%-3d,b=%Ld\n",a,a,a,b); printf("a=%o,%x,%u\n",a,a,a); printf("d=%f,%8.2f,%.2f\n",c,c,c); printf("d=%e,%8.2e,%g\n",c,c,c); printf("%c,%s,",'\072',"China"); printf("|-%5.2s|%5.2s|\n","China","China"); } 调试分析: 这个实验主要考察整型,长整型和浮点型等之间的输出,对浮点型小数点左右个数的考察,输出结果如下图 3 按格式要求输入、输出数据。 #include main() { int a,b; float x,y; char c1,c2; scanf("a=%d,b=%d",&a,&b); scanf("%f,%e",&x,&y); scanf("%c%c%c",&c1,&c1,&c2); /* 第8行 */ printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2); } 运行该程序,按如下方式在键盘上输入数据,写出输出的结果。 a=3,b=7 85,71.82 Aa 调试分析:主要是考察对输入输出的理解,以及输入输出要注意的问题,结果

C语言中参数的传值问题

C 语言中参数的传值问题 第1页 C 语言中参数的传值一直比较含糊,今天在网上看到三个面试题的详解,感觉讲的很好,就拿来记下,方便学习和记忆。 1. 考题一:程序代码如下: void Exchg1(int x, int y) { int tmp; tmp=x; x=y; y=tmp; printf(“x=%d,y=%d/n”,x,y) } void main() { int a=4,b=6; Exchg1 (a,b) ; printf(“a=%d,b=%d/n”,a,b) } 输出的结果: x=____, y=____ a=____, b=____ 问下划线的部分应是什么,请完成。 2. 考题二:代码如下。 Exchg2(int *px, int *py) { int tmp=*px; *px=*py; *py=tmp; print(“*px=%d,*py=%d/n”,*px,*py); } main() { int a=4; int b=6; Exchg2(&a,&b); Print(“a=%d,b=%d/n”, a, b); } 输出的结果为: *px=____, *py=____ a=____, b=____ 问下划线的部分应是什么,请完成。 3. 考题三: Exchg2(int &x, int &y) { int tmp=x; x=y; y=tmp; print(“x=%d,y=%d/n”,x,y); } main() { int a=4; int b=6; Exchg2(a,b); Print(“a=%d,b=%d/n”, a, b); } 输出的结果: x=____, y=____ a=____, b=____ 问下划线的部分输出的应是什么,请完成。 你不在机子上试,能作出来吗?你对你写出的答案有多大的把握? 正确的答案,想知道吗?(呵呵,让我慢慢地告诉你吧!) 好,废话少说,继续我们的探索之旅了。 我们都知道:C 语言中函数参数的传递有:值传递,地址传递,引用传递这三种形式。题一为值传递,题二为地址传递,题三为引用传递。不过,正是这几种参数传递的形式,曾把我给搞得晕头转向。我相信也有很多人与我有同感吧? 下面请让我逐个地谈谈这三种传递形式。 二、函数参数传递方式之一:值传递 1. 一个预备的常识 为了说明这个问题,我先给出一个代码: int a=4; int x; x=a; x=x+3; 看好了没,现在我问你:最终a 值是多少,x 值是多少? (怎么搞的,给我这个小儿科的问题。还不简单,不就是a==4 x==7嘛!) 在这个代码中,你要明白一个东西:虽然a 值赋给了x ,但是a 变量并不是x 变量哦。我们对x 任何的修改,都不会改变a 变量。呵呵!虽然简单,并且一看就理所当然,不过可是一个很重要的认识喔。

c语言顺序结构程序设计练习题10道

c语言顺序结构程序设计练习题 1、编写程序:输入一矩形的长和宽,计算该矩形的面积。 2、编程:输入求的半径R,计算并输出球的体积。 3、编程:输入三个数,求出这三个数的和以及平均值,并在屏幕上输出。 4、编程:输入一个三位整数x(999=>x>=100),将其分解出百位、十位、各位,并求出各位之和以及各位之积 5、编程:已知三角形的三边a=3,b=4,c=5,求其面积s。(提示:假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:S=sqrt(p(p-a)(p-b)(p-c)),而公式里的p 为半周长:p=(a+b+c)/2。 6、编写一个C程序,输出以下信息: ************************** Very Good! ************************** 7、编写一个程序,输入a、b、c三个值,输出其中最大值. 8、写出程序运行的结果: main() { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 9、写出程序运行的结果: main() { char a ,b, c1,c2; float x ,y; a = 3; b =7; x = 8.5; y = 71.82; c1 = ' A' ; c2 = 'a '; printf("a= %d b = %d/n",a,b); printf("x = %f y = %f",x,y); printf("c1= %c,c2 =%c",c1,c2); } 10、求ax2+bx+c=0方程的根,a,b,c由键盘输入,假设b2-4ac>0。

C语言中的函数间数据传递

理论广角 C语言是一种结构化程序设计语言,而结构化程序设计的总体思想是采用模块化结构,自上而下,逐步求精。即首先把一个复杂的大问题分解为若干相对独立的小问题,如果小问题仍较复杂,则可以把这些小问题又继续分解成若干子问题这样不断地分解,使得小问题或子问题简单到能够直接用程序的三种基本结构表达为止。然后,对应每一个小问题或子问题编写出一个功能上相对独立的程序块来,这种像积木一样的程序块被称为模块。 而每个模块可以由实现不同功能的函数组成。C语言的函数有两种:一是库函数(标准函数,C语言程序自带),用户可以直接调用;另一类是自定义函数,由用户根据使用的目的自己设计。可以说,C语言的程序是由函数组成,而在函数之间存在相互调用及调用时数据的传递问题。 在 C 语言中,我们通过函数实现模块化程序设计思想,即用函数实现功能模块的定义,然后通过函数之间的调用来实现程序功能。因此,程序中的函数根据其在某个程序中的使用方式的不同分为主调函数和被调用函数。函数本身并没有这种区分。函数间也可互相调用。有参函数的参数是主调函数和被调用函数进行数据传递的主要方式。无参函数不需要数据传递。参数有形式参数和实在参数之分。在函数的定义和说明语句中,我们将函数名后面括号中的参数称为形式参数,简称“形参”;在函数的调用语句中函数名后面括号中用的参数称为实在参数,简称“实参”。当函数被调用时,主调函数通过实参要向被调用函数的形参传递数据;函数调用并完成一定的功能后,也要向主调函数返回一些数据。在函数调用中,被调用函数应在主调函数之前定义 或被声明,如是系统提供的库函数,一般应将放该函数头文件用#include包含到本文件中;如果是用户自己定义的函数,则该函数与调用它的函数在同一文件中。被调用函数的形参应确定数据类型;而在函数调用时,用被调用函数名和实参的形式调用,实参的数据类型与形参应一致,否则易出错。 根据作者的多年教学经验,函数间的数据传递是C语言初学者的难点之一。下面重点介绍函数间的数据传递方式。 一、值传递方式 当形参为变量而实参为变量、某个数组元素、常量或表达式时,在函数调用过程中数据传递通常使用的是值传递方式。既在程序执行中,系统会给形参和实参分别分配内存单元,在函数调用时,程序将实参的值传递给形参,存在系统分配的内存单元中,供被调用函数使用,形参和实参使用不同的内存单元;函数执行完毕,形参不将处理后的值返回给实参,实参的值不变,被调用函数最多只能通过ruturn语句返回一个值给主调函数,形参的内存单元被释放。在此程序中,通过把主调函数中被调用函数名后的实参(即变量的值)赋值给被调用函数的形参(变量),由被调用函数进行处理,从而实现主调函数与被调用函数间数据的传递。在这种数据传递方式中,函数最多只能返回一个值,这就有一定的局限性。 例1:采用值传递方式交换两个变量的数据并求和。 swap-sum (int x, int y) /*定义交换及求和函数*/{int temp; printf(“2.x=%d y=%d\n”, x, y );temp=x; x=y; y=temp; /*进行值的交换*/ printf(“3.x=%d y=%d\n”, x, y );return (x+y ); /*返回变量求和的值*/}main() /*主函数*/ {int a, b, sum;scanf (“1.a=%d, b=%d”, &a, &b );sum=swap-sum(a, b ); printf (“4.a=%d b=%d\n”, a, b );printf (“sum=%d\n”, sum);}运行结果为:1.a=9 b=132.x=9 y=133.x=13 y=94.a=9 b=13sum=22 从运行结果,在被调用函数中交换形参变量的值并不影响实参变量的值,从被调用函数中返回主调函数的值只能通过return语句。 二、地址传递方式 当函数调用时,被调用函数的形参和实参为指针变量或数组时,函数间的数据传递使用的是地址传递方式。既在程序的执行过程中,系统给实参分配存储空间;在函数调用时,将实参获得的存储空间的地址传递给形参,使形参指向同一存储空间,当形参指向存储空间的值参与被调用函数的处理,也就是实参指向存储空间的值被处理。被调用函数执行完毕返回主调函数时,由于形参和实参指向同一存储空间,形参指向的存储空间的值的变化也就是实参指向存储空间的值的变化。从而实现被调用函数返回多个值给主调函数。如形参和实参使用的是数组时,传递的是数组首元素的地址。应注意,在函数中被处理的是形参指向的存储空间中存储的值,而不是存储空 C 语言中的函数间数据传递 [摘 要]C语言是结构化程序设计语言,其程序是由模块组成,而模块由完成不同功能的函数组成,函数 间存在相互调用和数据传递问题。数据传递分为值传递方式、地址传递方式、全局变量传递方式,每种方式传递的内容、要求不同,各有其应用的优点和局限性。 [关键词]函数 数据传递 值传递方式 地址传递方式 全局变量 学术要论

C语言(顺序结构)习题与答案

一、单选题 1、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序编译时出错。main() /*Beginning */ { int r; float s; scanf("%d",&r); s=π*r*r; printf("s=%f\n",s); } 出错的原因是()。 A.计算圆面积的赋值语句中使用了非法变量 B.存放圆半径的变量r不应该定义为整型 C.注释语句书写位置错误 D.输出语句中格式描述符非法 正确答案:A 解析: A、π这个符合不是C语言的合法标识符,应提前进行常量定义 2、有以下程序 main() { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是()。 A.12343514 B.12353514 C.12343513

D.12353513 正确答案:B 解析: B、m++ ++在m后,先使用m的值输出,后给m增1 ++m,++在m前,先给m的值增1后,再输出m 3、有定义语句:int b;char c[10]; ,则正确的输入语句是()。 A.scanf("%d%s",b,c); B.scanf("%d%s",&b,&c); C.scanf("%d%s",b,&c); D.scanf("%d%s",&b,c); 正确答案:D 解析: D、输入语句整型变量 b 需要取地址 &,c是数组名,本身就代表地址,所以不需要取地址符& 4、有以下程序 main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()。 A.123 456 789 B.m=123 n=456 p=789 C.m=123n=456p=789 D.m=123,n=456,p=789 正确答案:C 解析: C、输入语句中出现普通字符要按原样输入 5、有以下程序

C语言函数调用三种方式 传值调用,引用调用和传地址调

C语言函数调用三种方式传值调用,引用调用和传地址调 我想,你只要看了C语言上关于传值函数调用的测试题,一切都会了然于胸:1. 考题一:程序代码如下: void Exchg1(int x, int y) { int tmp; tmp=x; x=y; y=tmp; printf(“x=%d,y=%d\n”,x,y) } void main() { int a=4,b=6; Exchg1 (a,b) ; printf(“a=%d,b=%d\n”,a,b) } 输出的结果: x=____, y=____ a=____, b=____ 问下划线的部分应是什么,请完成。 2. 考题二:代码如下。 Exchg2(int *px, int *py) { int tmp=*px; *px=*py; *py=tmp; print(“*px=%d,*py=%d\n”,*px,*py); } main()

{ int a=4; int b=6; Exchg2(&a,&b); Print(“a=%d,b=%d\n”, a, b); } 输出的结果为: *px=____, *py=____ a=____, b=____ 问下划线的部分应是什么,请完成。 3. 考题三: Exchg2(int &x, int &y) { int tmp=x; x=y; y=tmp; print(“x=%d,y=%d\n”,x,y); } main() { int a=4; int b=6; Exchg2(a,b); Print(“a=%d,b=%d\n”, a, b); } 二.函数参数传递方式之一:值传递 1.值传递的一个错误认识 先看题一中Exchg1函数的定义: void Exchg1(int x, int y) //定义中的x,y变量被称为Exchg1函数的形式参数{

c语言程序设计实验报告1--顺序结构

福建农林大学金山学院实验报告 系(教研室):专业:年级: 实验课程: C语言程序设计姓名:学号:实验室号:_ 计算机号:实验时间:指导教师签字:成绩: 实验1:顺序结构程序设计 一、实验目的和要求 1.了解Visual C++ DEV_C++的基本操作方法 2.掌握C程序设计的基本步骤:编辑、编译、连接和运行 3.掌握各种类型数据的输入输出方法 4.能够编写一个简单的程序 二、实验内容和原理 1. 输入并运行一个简单、正确的程序。 # include <> int main( ) { printf ("This is a c program!\n"); return 0; } 2. 要使下面程序的输出语句在屏幕上显示:A,B,34,则从键盘输入的数据格式应为AB34__________ 。 #include<> int main() { char a, b; int c;

scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%d\n",a,b,c); return0; 问题1:要使上面程序的键盘输入数据格式为a=A,b=B,34,输出语句在屏幕上显示的结果也为A,B,34,则应修改程序中的哪条语句怎样修改 scanf( “a=%c,b=%c,%d”,&a,&b,&c ); 问题 2:要使上面程序的键盘输入数据格式为A,B,34,而输出语句在屏幕上显示的结果为“A”,“B”,34,则应修改程序中的哪两条语句怎样修改 scanf( “%c,%c,%d”,&a,&b,&c); printf(“\”%c\”,\”%c\”,%d\n”,a,b,c); 3、编程求一个圆的周长和面积。用scanf输入圆半径,输出保留两位小数。 4、输入一个华氏温度F,要求输出摄氏温度C。公式为 c=5/9(F-32),取两位小数。 5、编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf 函数输出这两个字符。 6. 计算定期存款本利之和。 设银行定期存款的年利率rate为%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital 均由键盘输入。(提示:pow为幂函数:pow(2,3)表示23)。 #include <> #include <> int main() { } 三、实验环境

C语言函数参数传递(非常重要)

一、三道考题 开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?) 考题一,程序代码如下: void Exchg1(int x, int y) { int tmp; tmp = x; x = y; y = tmp; printf("x = %d, y = %d\n", x, y); } main() { int a = 4,b = 6; Exchg1(a, b); printf("a = %d, b = %d\n", a, b); return(0); } 输出的结果为: x = ____, y=____. a = ____, b=____. 问下划线的部分应是什么,请完成。 考题二,程序代码如下: void Exchg2(int *px, int *py) { int tmp = *px; *px = *py; *py = tmp; printf("*px = %d, *py = %d.\n", *px, *py); } main() { int a = 4; int b = 6; Exchg2(&a, &b); printf("a = %d, b = %d.\n", a, b); return(0); } 输出的结果为为: *px=____, *py=____.

a=____, b=____. 问下划线的部分应是什么,请完成。 考题三,程序代码如下: void Exchg3(int &x, int &y) { int tmp = x; x = y; y = tmp; printf("x = %d,y = %d\n", x, y); } main() { int a = 4; int b = 6; Exchg3(a, b); printf("a = %d, b = %d\n", a, b); return(0); } 输出的结果为: x=____, y=____. a=____, b=____. 问下划线的部分应是什么,请完成。你不在机子上试,能作出来吗?你对你写出的答案有多大的把握?正确的答案,想知道吗?(呵呵,让我慢慢地告诉你吧!) 好,废话少说,继续我们的探索之旅了。 我们都知道:C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。题一为值传递,题二为地址传递,题三为引用传递。不过,正是这几种参数传递的形式,曾把我给搞得晕头转向。我相信也有很多人与我有同感吧? 下面请让我逐个地谈谈这三种传递形式。 二、函数参数传递方式之一:值传递 (1)值传递的一个错误认识 先看考题一中Exchg1函数的定义: void Exchg1(int x, int y) /* 定义中的x,y变量被称为Exchg1函数的形式参数*/ { int tmp; tmp = x; x = y; y = tmp; printf("x = %d, y = %d.\n", x, y); }

C语言(顺序结构程序设计)习题与答案

1、一个C程序的执行是从( )。 A.本程序的main函数开始,到main函数结束。 B.本程序的main函数开始,到本程序文件的最后一个函数结束。 C.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 D.本程序文件的第一个函数开始,到本程序main函数结束。 正确答案:A 2、C语言规定:在一个源程序中,main函数的位置( )。 A.必须在系统调用的库函数的后面 B.必须在最开始 C.可以任意 D.必须在最后 正确答案:C 3、下面四个选项中,均是不合法的浮点数的选项是( )。 A.160. 0.12 e3 B.123 2e4.2 .e5 C.-e3 .234 1e3 D..18 123e4 0.

4、下面四个选项中,均是合法浮点数的选项是( )。 A.+le+1 5e-9.4 03e2 B.123e 1.2e-.4 +2e-1 C.-.60 12e-4 -8e5 D.-e3 .8e4 5.e-0 正确答案:C 5、下面正确的字符常量是( )。 A.'' B.'W' C."a" D.'\\'' 正确答案:B 6、下面四个选项中,均是不正确的八进制数或十六进制数的选项是( )。 A. 016 0x8f 018 B. 010 -0x11 0x16

7ff -123 D.oabc 017 0x8 正确答案:C 7、下面不正确的字符串常量是( )。 A."12\12" B."0" C."" D.'abc' 正确答案:D 8、在C语言中,要求运算数必须是整型的运算符是( )。 A./ B.= C.++ D.% 正确答案:D 9、若以下变量均是整型,且num=sum=7;则执行表达式 sum=num++,sum++,++num后sum的值为( )。 A.7 B.9 C.10 D.8 正确答案:D 10、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。

C语言常考的知识点

C语言常考的知识点: 总体上必须清楚的: 1)程序结构是三种:顺序结构 , 循环结构(三个循环结构), 选择结构(if 和switch) 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte 是指字节, 一个字节 = 八个位. 5)一定要记住二进制如何划成十进制。 概念常考到的: 1、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、每个C语言程序中main函数是有且只有一个。 3、在函数中不可以再定义函数。 4、算法的是一定要有输出的,他可以没有输入。 5、break可用于循环结构和switch语句。 6、逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。

并且第一个必须为字母或则是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。main define scanf printf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 2)实型数据的合法形式: 2.333e-1 就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。. 3)字符数据的合法形式:: '1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。 4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节: 考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。 5)转义字符的考查: 在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。 在程序中 int a = 06d, 是一个八进制的形式。 在转义字符中,’\x6d’ 才是合法的,0不能写,并且x是小写。 ‘\141’ 是合法的, 0是不能写的。 ‘\108’是非法的,因为不可以出现8。 6)算术运算符号的优先级别: 同级别的有的是从左到右,有的是从右到左。 7)强制类型转换: 一定是(int)a不是 int(a),注意类型上一定有括号的。 注意(int)(a+b)和(int)a+b 的区别。前是把a+b转型,后是把a转型再加b。

c语言值传递的3种形式

//全部摘自别的博客,以前对值传递很迷糊,看完豁然开朗,整理下,来百度文库赚点分。 一、三道考题 开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?) 考题一,程序代码如下: void Exchg1(int x, int y) { inttmp; tmp = x; x = y; y = tmp; printf("x = %d, y = %d\n", x, y); } main() { int a = 4,b = 6; Exchg1(a, b); printf("a = %d, b = %d\n", a, b); return(0); } 输出的结果为: x = ____, y=____. a = ____, b=____. 问下划线的部分应是什么,请完成。 考题二,程序代码如下: void Exchg2(int *px, int *py) { inttmp = *px; *px = *py; *py = tmp; printf("*px = %d, *py = %d.\n", *px, *py); } main() { int a = 4; int b = 6; Exchg2(&a, &b);

printf("a = %d, b = %d.\n", a, b); return(0); } 输出的结果为为: *px=____, *py=____. a=____, b=____. 问下划线的部分应是什么,请完成。 考题三,程序代码如下: void Exchg3(int&x, int&y) { inttmp = x; x = y; y = tmp; printf("x = %d,y = %d\n", x, y); } main() { int a = 4; int b = 6; Exchg3(a, b); printf("a = %d, b = %d\n", a, b); return(0); } 输出的结果为: x=____, y=____. a=____, b=____. 问下划线的部分应是什么,请完成。你不在机子上试,能作出来吗?你对你写出的答案有多大的把握?正确的答案,想知道吗?(呵呵,让我慢慢地告诉你吧!) 好,废话少说,继续我们的探索之旅了。 我们都知道:C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。题一为值传递,题二为地址传递,题三为引用传递。不过,正是这几种参数传递的形式,曾把我给搞得晕头转向。我相信也有很多人与我有同感吧? 下面请让我逐个地谈谈这三种传递形式。 二、函数参数传递方式之一:值传递 (1)值传递的一个错误认识 先看考题一中Exchg1函数的定义: void Exchg1(int x, int y) /* 定义中的x,y变量被称为Exchg1函数的形式参数*/ {

C语言习题:顺序、选择、循环

顺序结构程序设计 2.3.1 要点导读 () 与scanf()语句。 printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。它们位于库文件中。 2.字符数据的输入输出。 最简单的字符输入输出函数是getchar()和putchar()。两者分别从键盘读一个字符或向显示屏写一个字符。 2.3.2 经典例题分析 1.下列程序运行后输出的结果是。 #include <> void main() 、 { int a=0,b=0; a=10; b=20; printf(“a+b=%d”,a+b); } 分析:printf( )是输出函数,它的括号内由两部分组成: 1)控制字符串,是用双引号括起来的字符串,它包括两种信息: (1) 格式说明。由”%”和格式字符组成,如:%d、%f、%c等。它的作用是将输出 的数据转换成指定的格式输出。 (2) 普通字符。需要原样输出的字符。 - 2)”输出表列”是需要输出的一些数据,可以是表达式。 题目中a的值是10,b的值是20,在 printf(“a+b=%d”,a+b); 格式说明输出表列 中,”a+b= “是普通字符,需原样输出。输出表列是一个表达式,它的结果以整型输出。 答案:a+b=30。 2.下列程序运行后输出的结果是。

#include <> void main() { int a=732; ) printf(“%d\n”,a); printf(“%2d\n”,a); printf(“%10d\n”,a); printf(“%-10d\n”,a); } 分析:d格式符,用来输出十进制整数。其中%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 printf(“%d\n”,a);把a的值按原样输出:732。printf(“%2d\n”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:732。printf(%10d\n”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。printf(“%-10d\n”,a); 结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。 答案:732 732 □□□□□□□732 /*□表示空格*/ , 732□□□□□□□ 3.已知char a=‘\103’;则语句printf(“%3d”,a);执行后的输出结果为(□表示空格)。 A)□67B)’c’C)67□D)103 分析:’\103’是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf(“%3d”,a);把’\103’转换为十进制数输出,结果占3列。但67占2列,小于要求的3列,所以左补空格,即□67。 答案:C。 4.下列程序运行后结果是。 #include <> #define a void main() { printf(“%f\n”,a); @ printf(“%e\n”,a); printf(“%4.2f\n”,a); printf(“%3.1f\n”,a); printf(“%10.3f\n”,a); printf(“%-10.3f\n”,a); } 分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf(“%f\n”,a);输出结果为。 %是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,

C语言考试复习题

C语言 1.以下不属于C语言特点的是(D ) A.简洁紧凑,灵活方便 B.数据结构类型丰富 C.可移植性好 D.能够直接被计算机识别和执行 2.#include命令是一种(C ) A.函数 B.宏定义 C.预处理命令 D.条件编译命令 3.C语言中最简单的数据类型包括( B) A.整型,实型,逻辑型 B.整型,实型,字符型 C.整型,字符型,逻辑型 D.字符型,实型,逻辑型 4.以下整型常量正确的是(D)注:整型常量一般用十进制表示 A.078 B.20.0 C.2e10 D.Oxabc 5.字符常量只能用( B)括起来

A.圆括号 B.单引号 C.双引号 D.分号 6.以下不正确的叙述是( D) A.在C程序中,逗号运算符的优先级最低 B.在C程序中,APH和aph是两个不同的变量 C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a 中,而b中的值不变 D.运算优先级不同的运算符也要先看结合方向 7.设有int a=2,b=4,c=6,y=3;则执行语句y=((b=a+b),(b+c));后,y的值是(C ) A.6 B.10 C.12 D.3 8.C语言中用于结构化程序设计的三种基本结构是( D) A.if,switch,break B.If,while,for C.While,do-while,for D.顺序结构,选择结构,循环结构 9.下列叙述中正确的是( B)

A.调用printf()函数时,必须要有输出项 B.使用printf()函数时,必须在之前包含头文件stdio.h C.在C语言中,实数可以以十进制,八进制或十六进制的形式输出 D.调用getchar()函数读入字符时,可以从键盘上输入字符所对应的ASCII码 10.程序段: int x=12;( ) A.123.141593 B.12 3.141593 C.12,3.141593 D.12 3.141593 11.( D)不是算法的表达方式。 A.流程图 B.N-S流程图 C.伪代码 D.数据结构 12.有如下程序( ) #include“stdio.h” A.0 B.-1 C.1

相关文档
最新文档