C语言程序设计8
- 格式:ppt
- 大小:153.00 KB
- 文档页数:17
一、单项选择题题目1标准输出设备显示器的文件流标识符是()。
a. stdinb. stdoutc. stderrd. stdio题目2表示文件结束符的符号常量EOF的值为()。
a. 0b. -1c. 1d. 127题目3假定一个磁盘数据文件占用n个字节的存储空间,则按字节进行编址的范围是()。
a. 1˜(n-1)b. 0˜(n-1)c. 0˜nd. 1˜n题目4在C语言中,为只写操作打开一个文本文件的方式为()。
b. "w"c. "r"d. "a"题目5在C语言中,文本文件的打开方式共有()。
a. 6b. 9c. 12d. 3题目6在C语言中,为读和写操作打开一个二进制文件,若文件不存在则自动建立空文件的打开方式为()。
a. "ab+"b. "w+"c. "rb+"d. "wb+"题目7从一个文本文件中读取以换行符结束的一个字符串的系统函数为()。
a. fgets()b. fputc()d. fputs()题目8向一个文本文件中写入一个字符的系统函数为()。
a. fputs()b. fputc()c. fgetc()d. fgets()题目9向一个二进制文件中写入数据的系统函数为()。
a. fputc()b. fwrite()c. fread()d. fputs()题目10从一个二进制文件中读取数据的系统函数为fread(),它的参数有()。
a. 2个b. 4个c. 3个d. 5个二、判断题题目11一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。
对错题目12当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。
对错题目13C语言系统中提供一个用来描述文件属性的类型标识符为FILE。
对错题目14在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。
参考答案第 8 章字符、字符数组与字符串一、选择题二、编程题略。
习题一、选择题(1)char类型的变量存储时占据( A )个字节。
A)1 B)2 C)4 D)8 (2)以下选项中,不合法字符常量的是( C )。
A)'\\ ' B)'\xbb' C)'\019' D)'c' (3)已定义变量char c,( C )不能正确地给该变量赋值。
A)c=97 B)c='A' C)c=''B'' D)c='A'+6 (4)以下关于输入输出格式说明符的说法正确的是( A )。
A)%c是char数据的输入输出格式符B)%d是char数据的输入输出格式符C)%s是char数据的输入输出格式符D)%f是char数据的输入输出格式符(5)已知数字字符'0'的ASCII值为48。
以下程序运行后的输出结果是( B )。
#include<stdio.h>void main(){ char a='4',b='5';b=b+2;printf("%c,",b);printf("%d",b-a);}A)5,4 B)7,3 C)5,1 D)4,5 (6)以下选项中,( B )是正确的字符串。
A)'hello' B)"hello " C)hello D)'h' (7)以下语句中,( D )能够正确定义字符数组并存入字符串。
A)char str[]={'\064'}; B)char str="kx43";C)char str=''; D)char str[]="\0";(8)已有定义char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是( C )。
第8章指针【练习8-1】如果有定义”int m, n = 5, *p = &m;”与m = n等价的语句是B 。
A.m = *p; B. *p = *&n; C. m = &n; D. m = **p;解答:A:p是指向m的指针变量,所以*p等价于m。
即m=m。
B:&n是n的地址,*&n是n的值,即把n的值赋给p指向的值m。
即m=n。
C:&n是n的地址。
即把n的地址赋给m。
D:**p是指p指向的指针所指向的值,在此无意义。
故选B。
【练习8-2】调用函数求两个数的和与差:计算输入的两个数的和与差,要求自定义一个函数sum_diff(float op1,float op2, float *psum, float *pdiff),其中op1和op2是输入的两个数,*psum 和*pdiff 是计算得出的和与差。
解答:#include<stdio.h>void sum_diff(float op1,float op2,float *psum,float *pdiff);int main(void){float op1,op2,sum,diff;printf("Input op1 and op2: ");scanf("%f%f",&op1,&op2);sum_diff(op1,op2,&sum,&diff);printf("%f+%f=%f;%f-%f=%f \n",op1,op2,sum,op1,op2,diff);return 0;}void sum_diff(float op1,float op2,float *psum,float *pdiff){*psum=op1+op2;*pdiff=op1-op2;}【练习8-3】两个相同类型的指针变量能不能相加?为什么?解答:不能。