C语言程序设计习题
{char c;
while((c=fgetc(fp1))=='#') putchar(c); }
(四)程序设计题
1.编一个程序,从键盘输入200个字符,存入名为“f1.txt”的磁盘文件中。
2.从上题中建立的文件f1.txt中读取120个字符,并显示在屏幕上。
3.编一个程序,将磁盘中当前目录下名为ccw1.txt的文本文件复制在同一目录下,文件名改为ccw2.txt。
4.编程序对名为ccw.txt的磁盘文件中“@”之前的所有字符加密,加密方法是每个字节的内容减10。
- 39 -
C语言程序设计习题
5.编程序对上题中名为ccw.txt的磁盘文件中'@'之前的所有字符解密并显示。
6.输入100个学生的信息(含学好、姓名、年龄、7科成绩、总分),统计所有学生的总分,然后存入磁盘二进制数据文件student.dat中。再读取该文件,寻找总分最高的学生并输出该生的所有信息。
- 40 -
C语言程序设计习题
第九章 编译预处理和带参数的主函数
一、基本内容
1.编译预处理:是C编译系统的一个组成部分。就是在C程序中允许使用几个特殊的命令(不是C语句),这些命令是以“#”符开头的,如:#include \、#define PI 3.14159 等。在对源程序正式编译之前,这些命令将被处理,所以称为“编译预处理”命令。编译预处理命令有三种:宏定义、文件包含和条件编译。
2.宏:就是将一个“标识符”定义成“一串符号”。之后,在程序中使用“一串符号”的地方写上“标识符”即可。在编译预处理时,程序中所有的“标识符”又被用“一串符号”替换。宏定义有下面两种形式:
无参宏的定义: #define 标识符 一串符号
带参宏的定义: #definf 标识符(形参表) 一串符号 取消宏定义: #undef 标识符 举例:①#define PI 3.14159
②#define S(r) (PI*(r)*(r))
3.文件包含:将指定“文件”中的内容包含在当前源程序中。文件包含命令格式如下:
① #include \文件名\或 ② #include <文件名>
4.条件编译:对源程序中某程序段通过条件来控制是否参加本次编译。有三种格式:
①#if 条件 ①#ifdef 宏名 ①#ifndef 宏名 程序段1 程序段1 程序段1 #else #else #else
程序段2 程序段2 程序段2 #endif #endif #endif 5.带参数的主函数:主函数也可以带参数。带参数时主函数定义如下:
main(int argc,char *argv[]) {……}
其中:整型参数argc接受命令行参数的个数(包括命令名本身),指针数组参数argv[]指向各个参数串。如:下面的程序输出命令行参数的个数和各参数串。
main(int argv,char *argv[]) {int i;
printf(\ for(i=0;i printf(\} 将该程序以文件名test.c存盘,编译连接生成可执行文件test.exe,在DOS提示符下运行该文件如下: - 41 - C语言程序设计习题 C:\\TURBOC2>TEST ABC XYZ 123 ↙ argc=4 argv[0]->C:\\TURBOC2>TEST.EXE argv[1]->ABC argv[2]->XYZ argv[3]->123 三、习题 (一)单项选择题 1.下列语句中,正确的是_____ ①#define MYNAME=\②#include string.h ③for(i=0;i<10;i++); ④struct int str{int name;}; 2.下列语句中,正确的是_____ ①#define PI=3.14159 ②include \ ③for(i=0,i<10,i++)a++; ④static struct{int i;} b={2}; 3.下列语句中,错误的是_____ ①#define PI 3.14159 ②#include #define N 3 #define Y(n) ((N+1)*n) ①出错 ②42 ③48 ④54 5.以下程序中的for循环执行的次数是_____ #include \#define N 2 #define M N+1 #define NUM (M+1)*M/2 main() {int i,n=0; for(i=1;i<=NUM;i++){n++;printf(\ printf(\} ①5 ②6 ③8 ④9 (二)填充题 1.设有定义如下:#define F(N) 2*N ,则表达式F(2+3)的值是 7 。 2.设有下列程序: #include \ maun(int argc,char *argv[]) {while(--argc>0) printf(\ printf(\} 假定上述程序编译连接成可执行程序名为p.exe,如果输入如下命令: p 123 AAA BBB ↙ - 42 -

