c语言p04
谭浩强C语言第4章

长度: 长度: 长度格式符为h,l两种, 表示按短整型量输出, 长度格式符为h,l两种,h表示按短整型量输出, h,l两种 表示按长整型量输出. l表示按长整型量输出.
练习: 练习: int a=1234; b=int b=-1; float f=123.456; ch='a ; char ch= a'; printf("%8d,%2d\n",a,a); printf( %8d,%2d\ ,a,a); %8d,%2d printf("%#x %#x",b); printf( %#x ,b); printf("%f,%8f,%8.1f,%.2f,%.2e %f,%8f,%8.1f,%.2f,%.2e\ ,f,f,f,f,f); printf( %f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f); printf("%3c %3c\ ,ch); printf( %3c\n",ch); printf("%2.3s %2.3s", abcdefg abcdefg"); printf( %2.3s ,"abcdefg ); 上机时验证自己的答案. 上机时验证自己的答案.
scanf函数 scanf函数 按指定格式从键盘读入数据, 按指定格式从键盘读入数据,存入地址表指定的存储 地址中,并按回车键结束.如 地址中,并按回车键结束. scanf("%d%d",&i,&j); scanf可以使用的格式字符和printf的一样 scanf可以使用的格式字符和printf的一样 可以使用的格式字符和printf scanf一般用空格,TAB或回车键作为分隔符 scanf一般用空格,TAB或回车键作为分隔符 一般用空格 scanf在遇到分隔符或非法输入时认为该数据结束 scanf在遇到分隔符或非法输入时认为该数据结束 scanf函数中的后面部分应当是变量地址 scanf函数中的后面部分应当是变量地址
C语言第4章

【例 4-2】用C 语言编程任意输入一个正整数,要求逆序打印 其各位数字,例如,输入65538,程序输出的结果为8,3, 5,5,6。
// Program: EG0402.C // Description: 输入一个正整数,逆序打印其各位数字 #include <stdio.h> void main( void ) { unsigned int num; unsigned short digit[8], i, j; printf("请输入一个正整数:"); scanf("%d", &num); for(i=0; num!=0; i++) { digit[i] = num % 10; num /= 10; } printf("颠倒的各位数字是:"); for(j=0; j<i-1; j++) printf("%2d,", digit[j]); printf("%2d\n", digit[j]); }
可写为:short num[]={ 0,1,2,3,4,5,6,7,8,9 }; 但不能省略不初始化的数组长度:short num[ ]; (3)初值个数既不能超过数组长度,也不能为0。
(4)只能给数组元素逐个赋值,不能给数组整体赋值。 例如给num数组的十个元素全部赋2,只能写为: short num[10]={2,2,2,2,2,2,2,2,2,2}; 或short num[]={2,2,2,2,2,2,2,2,2,2}; 而不能写为: short num[10]=2; (5)不能对已定义的数组初始化,下面的两种做法都是错误的: short num[10]; short num[10]={ 0,1,2,3,4,5,6,7,8,9 }; 或short num[10]; num={ 0,1,2,3,4,5,6,7,8,9 };
C语言第4章

第四章 顺序结构程序设计本章要点了解数据输入输出的概念,正确理解和掌握赋值语句,掌握字符的输入函数getchar 和输出函数putchar ,重点掌握格式输入函数scanf 和格式输出函数printf ,领会和初步掌握编写顺序结构程序的基本方法。
本章的难点是printf 函数各种格式控制符和m 、n 参数的正确运用。
第一节 C 语言概述一个C 程序可以有若干个源程序文件组成,一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成,一个函数由函数首部和函数体组成,函数体由数据声明和执行语句组成。
如图4-1所示。
C 语句分为以下5类:控制语句 函数调用语句C 语句 表达式语句空语句 复合语句(一)控制语句:完成一定的控制功能。
C 只有9种控制语句,它们是:1.if()…else … (条件语句)2.for()… (循环语句)3.while()… (循环语句)4.do …while(); (循环语句)5.continue (结束本次循环语句)6.break (中止执行switch 或循环语句)7.switch (多分支选择语句)8.goto (转向语句)C???????1?????2?????n???????????1??n???????????????......?4-1 C????9.return (从函数返回语句)(二)函数调用语句:由一个函数调用加一个分号构成函数调用语句。
例如,printf("This is a C statement.");其中printf("This is a C statement.")是一个函数调用,加一个分号称为一个语句。
(三)表达式语句:由一个表达式加一个分号构成一个语句。
例如,a=3;(四)空语句:只有一个分号的语句。
例如, ;(什么也不做)空语句可以用来做流程的转向点(流程从程序其他地方转到此语句处),也可以用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。
国家二级C语言机试(操作题)模拟试卷404(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷404(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.函数fun的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。
例如,主函数中给出了4名学生的数据,则程序运行的结果为:学号:N1002 学号:N1006 共有2位学生有不及格科目请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 typedef struct3 {char num[8];4 double score[2];5 /**********found**********/6 }_(1)__;7 int fun(STU std[],int n)8 { int i,k=0;9 for(i=0;i<n;i++)10 /**********found**********/11 if( std[i].score[0]<60__(2)__std[i].score[1]<60)12 { k++;printf (‘‘学号:%s’’,std[i].num);}13 /**********found**********/14 return __(3)__;15 }16 main( )17 {STU std[4]={ ‘‘N1001’’,76.5,82.0,’’N1002’’,53.5,73.0,’’N1005’’,80.5,66.0,’’N1006’’,81.0,56.0};18 printf(‘‘\n共有%d位学生有不及格科目\n’’,fun(std,4) };19 }正确答案:(1)STU (2)‖(3)k解析:第一空:“{……}(1);”这一空出现在定义结构体时,这里使用了typedef就是很明显地要声明结构体类型,而这里则是要填写结构体类型名。
paper04

矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序运行结果: OK! O K !
2 getchar(): 输入一个字符
例[4.2] #include "stdio.h" main() { char c; c = getchar(); putchar(c); }
运行时,若从键盘输入字符‘a’,屏幕显示为:
a
这是键盘输入的回显。只有在按“回车” 键后,字符才从键盘发出,程序getchar才获得 键盘的输入a↙ 也可这样写: putchar( getchar()); printf(“%c”,gerchar( ) );
4.2.2 格式输入与输出
printf( ):输出任意格式化数据列表。 scanf( ): 从标准输入设备(一般指键盘) 输入数据。 1、 printf()的一般格式 printf(格式控制,输出列表);
例如:printf ( “ %d , %f \n ” , a , b ); printf(参数1,参数2,参数3,....,参数n); 其中“参数1”表示“格式控制”;其余参数表 示“输出列表”。
#include”stdio.h” main() {char ch1,ch2,ch3; ch1=getchar(); ch2=getchar(); ch3=getchar(); ch1- =32; ch2- =32; ch3- =32; putchar(ch1);putchar(ch2);putchar(ch3); }; 程序运行情况: new NEW
格式的附加说明符
字符 说明 l(字母) 用于长整型数(%ld、%lo、%lx) 或double型实数(%lf、%le) h 用于短整型数(%hd、%ho、%hx) 域宽(一个正整数) 指定输入所占列宽 * 跳过相应的输入项
三、使用scanf()函数的注意事项
1、sacnf()中的变量必须使用地址。 scanf("%d,%d",a,b); ╳ scanf("%d,%d",&a,&b); √ 2 、 scanf( ) 的“格式控制中”,可以使用其它 字符, 但在输入时必须输入这些相同的字符。 Scanf(“%d,%d”,&a,&b); 输入时应:3,4 Scanf(“a=%d:b=%d”,&a,&b); 输入时应:a=3:b=4
选(a)
3.有以下程序 main() {int m=12,n=34; printf(“%d\n”,m,n); } 程序运行后输出的结果是() (a)12,34 (b)12 (c)34 (d)错误信息 选(b)
输入a、b、c 计算s
2.画出流程图。 求平方根函数sqrt() 在math.h中定义。
计算面积area
输出面积area
结束
#include "math.h" main() { float a,b,c,s,area; scanf("%f,%f,%f ",&a,&b,&c); s = 1.0/2*(a+b+c); area = sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%7.2f, b=%7.2f, c=%7.2f\n",a,b,c); printf("area = %7.2f\n",area); } 运行情况如下: 3, 4, 6↙ a= 3.00, b= 4.00, c= 6.00 area = 5.33
度大于指定的最小域宽时,按实际宽度输出。
n代表精度域宽,用来指出在float型或double型数
据中小数点后面的数字的输出位数;对于字符串 数据,它指出可以输出的最多的字符个数(即截 取输出的字符个数)。 ④由于%是格式说明的起始符,故要想输出%, 需用连续的两个 %表示。
例、(□表示空格)
int i = 123; long j = 123456; printf("%d,%5d,%05d,%ld",i ,i , i, j);
#include“stdio.h” main() {int x=1,z=2; printf(“x=%d,y=%d\n”,x,z); } (a)x=%1,y=%2 (b)x=%d,y=%d (c)x=1,y=2 (d)x=1,z=2
选(c)
main() {int m=7,n=4; float a=38.4,b=6.4,x; X=m/2+n*a/b+1/2; printf(“%f\n”,x); } 程序运行后输出的结果是() (a)27.000000 (b)27.500000 (c) 28.000000 (d)28.500000
第四章 最简单的C程序设计 ————顺序程序设计
三种基本结构:顺序结构,选择结构,循环结构。
是 A B A P 否 B P1 否 A B
是
P2 是
否
顺序结构
选择结构
当型循环
直到型循环
三种基本结构有以下共同特点: 1 只有一个入口。 2 只有一个出口。 3 结构内的每一部分都有机会被执行到, 且路径是唯一的。 4 结构内没有死循环。
printf("This is a C statement."); 3、表达式语句:在表达式后面加分号构成。 例: a = 3;/* 后面有分号,是语句 */ 4、空语句:仅包含一个分号的语句, 例、; 5、复合语句:由大括号{ }括起来的语句序列。 例、{ z = x + y; t = z / 100; printf("%f",t); }
有数据,并按回车后结束)。
① 遇空格、“回车”、“跳格”键。 ② 遇宽度结束。 ③ 遇非法输入。 如:scanf(“%d%c%f”,&a,&b,&c);
若输入:123a123o.26
§4.6 程序举例
[例4.10] 输入三角形的三边长,计算其面积。 1.设计算法、 开始 设三边长a、b、c, 面积area的算法是:
输出: 123, □□123, 00123, 123456
[例4.3] 11111111 11111110 b= -2 main() { unsigned int a = 65535; int b = -2; printf("a=%d,%o,%x,%u\n",a,a,a,a); printf(“b=%d,%o,%X,%u\n",b,b,b,b); }
3、在用"%c"输入时,空格和“转义字符”均 作为有效字符。 例、scanf("%c%c%c",&c1,&c2,&c3); 输入:a□b□c↙ 结果:a→c1,□→c2,b→c3 (其余被丢弃) 4 、输入数据时,遇以下情况结束一个数据的 输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均
二、格式说明
与printf()的格式控制类似。 格式字符 说明 d 用于输入十进制数 o(字母) 用于输入八进制数 x 用于输入十六进制数 c 用于输入单个字符 s 用于输入字符串(非空格开始,空格结束, 字符串变量以'\0'结尾) f 用于输入实数(小或指数均可) e 与f相同(可与f互换)
例: 4.5 main() { printf("%3s,%7.2s,%.4s,%-5.3s\n", "CHINA","CHINA","CHINA","CHINA"); } 输出: CHINA, □□ □□ □CH,CHIN,CHI □□
例: 4.6 main() {
float f=123.456; printf("%f,%10f \n%10.2f, %.2f \n%-10.2f\n", f,f,f,f,f);
修饰字符:
①字符‘-’:它是输出的参数(数据)在输出区域 内向左对齐的标志。若省略‘-’,则向右对齐输出。 ②字符‘l’:出现在d,u,o,x前,用于输出长整型 数据。
③域宽选择m.n:它们都是非负整数。
m代表最小域宽,用来指明输出区域的最小宽度。
当实际输出的宽度小于最小域宽给定值时,按最
小域宽输出,空缺部分补上空格;当实际输出宽
二、 赋值语句 1、C语言中的赋值号“=”是一个运 算符,而其它大多数语言中不是运 算符。 2、 if((a=b)>0) t=a;
§ 4.2数据的输入与输出概念与表达
C语言不提供输入输出语句,输入输出由开 发系统提供的函数实现,函数的原型在头文件 stdio.h中定义,使用输入输出函数时,应在 源程序的开头使用如下语句: #include "stdio.h"
} 输出:
123.456001,123.456001 123.46,123.46 123.46 ,
§4.2.3 数据输设备 stdin (一 般指键盘)输入数据。
scanf(格式控制,地址列表)
一、一般格式
“格式控制”与printf()的格式控制类似。 “地址列表”是输入信息存放地址的列表,一 般是变量地址。返回值等于成功输入的项数
格式 说 明 %d 以带符号的十进制形式输出整数 %u 以无符号的十进制形式输出整数 %o 以无符号的八进制形式输出整数(无前导符0) %x 以无符号的十六进制形式输出整数(无前导符0x)
格式 %c %s %f
说
明
以字符形式输出,只输出一个字符 输出一个字符串 以小数形式输出单、双精度实数(隐含6位小数) %e(E) 以标准指数形式输出实数(数字部分6位小数) 选用%f和%e中输出宽度较短的一种格式,不输 %g(G) 出无意义的0