puts(s); }
void replaceAll( char *str, char ch1, char ch2) {
while( *str ) { if( *str == ch1 ) { *str = ch2; } str++; } }
(7)
#include
int transformToBin( int dnum, int *bin ) ; int main( ) {
int array[32]; //保存转换后的进制数 int num; //待转换的整数
int cc; //最后得到的进制总共多少位 printf(\请输入一个整数:\ scanf(\
cc=transformToBin( num, array ); //调用转换函数 cc--; //使cc指向最后一个元素
for( ; cc>=0; cc-- ) //输出转换后的进制数 printf(\ array[cc]); printf(\ return 0; }
int transformToBin( int dnum, int *bin ) {
int *pb; int t; pb = bin;
while ( dnum ) //当dnum还未转换完毕 { t = dnum % 2; *pb = t; pb++; dnum /= 2; //数本身除2 }
return pb-bin; }
(8)
#include
void transformToHex( int dnum, char *hex ) ; int main( ) {
char array[32]; //保存转换后的进制数 int num; //待转换的整数
int cc; //最后得到的进制总共多少位 printf(\请输入一个整数:\ scanf(\
transformToHex( num, array ); //调用转换函数 cc=strlen(array)-1; //使cc指向最后一个元素 for( ; cc>=0; cc-- ) //输出转换后的进制数 printf(\ array[cc]); printf(\ return 0; }
void transformToHex( int dnum, char *hex ) {
char *ph; int t; ph = hex;
while ( dnum ) //当dnum还未转换完毕 { t = dnum % 16; if( t < 10 ) *ph = t+'0'; else *ph = t-10+'A'; ph++;
dnum /= 16; //数本身除16 }
*ph = '\\0'; }
(9)
#include
void strToLow(char *str); main( )
{
char s[100]; gets( s );
strToLow( s ); puts( s ); }
void strToLow( char *str ) {
while( *str ) { if( *str>='A'&&*str<='Z' ) *str = *str + 32; str++; } }
第10章 1.
(1)12 (2)(++p)->num (5)B (6)B 2. (1)
struct myDate{
int year, month, day; };
(2)
struct empInfo{ char empNo[15]; char empName[10]; char xb; //性别 int age;
struct myDate empDay; double salary; };
(3)
#include
typedef struct STUDENT { char name[20]; float height;
3)D 7)10,A
4) p2 != NULL
( (( int score; }STUD; main( ) {
STUD a;
printf(“姓名:”); gets( a.name); printf(“身高:”);
scanf(“%f”, &a.height); printf(“成绩:”);
scanf(“%d”, &a.score);
//输出信息(仅为测试用)
printf(“%s %.2f %d \\n”, a.name, a.height, a.score); }
第11章 1.
(1)打开文件:fopen 关闭文件:fclose 使用: FILE *fp; fp = fopen(“myfile”, “r”); … fclose( fp );
(2)”w”
(3)文本文件:内容均以字符的形式存储,占的字节数可能会大些
二进制文件:内容以二进制编码的形式存储,占的字节数可能会稍小。
(4)第一个参数:读取得到的信息存储在内存的哪个地方 第二个参数:读取的字节数 第三个参数:读取的块数
第四个参数:文件指针,表示从哪个文件中读取数据
(5)第一个参数:待写入文件的信息存储在内存的哪个地方 第二个参数:写入的字节数 第三个参数:写入的块数
第四个参数:文件指针,表示要写入到哪个文件中
(6)为了安全,gets少用,因为其没有指定输入字符的大小,限制输入缓冲区得大小,如果输入的字符大于定义的数组长度,会发生内存越界,堆栈溢出。后果非常怕怕fgets会指定大小,如果超出数组大小,会自动根据定义数组的长度截断。 2. (1)
#include
FILE *fpr, *fpw; char ch;
fpr = fopen(\ fpw = fopen(\
if( NULL==fpr ) { printf(\文件打开不成功\\n\ return 0; }
if( NULL == fpw ) { printf(\文件打开不成功\\n\ return 0; }
while( !feof( fpr ) ) { ch = fgetc( fpr ); fprintf(fpw, \ }
fclose( fpr ); fclose( fpw ); }
(2)
#include
FILE *fp1, *fp2;