C语言期末复习资料(重要)

更新时间:2023-11-15 16:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(注: 本文档参考答案中 “↙ ”代表回车换行,“□”代表空格,程序代码中省略了# include

一、

(一) 选择题

1. 以下不正确的C语言标识符是 A. ABC B. abc C. a_bc D. ab.c

2. 以下正确的C语言标识符是 A. %x B. a+b C. a123 D. test!

3. 一个C语言程序的执行是从 。 A. main( )函数开始,直到main( )函数结束 B. 第一个函数开始,直到最后一个函数结束 C. 第一个语句开始,直到最后一个语句结束 D. main( )函数开始,直到最后一函数结束 4. 在C语言程序中,main函数的位置 。 A. 必须作为第一个函数 B. 必须作为最后一个函数 C. 任意

D. 必须放在它所调用的函数之后 5. 一个C语言程序是由 。 A. 一个主程序和若干个子程序组成 B. 一个或多个函数组成 C. 若干过程组成 D. 若干子程序组成

6. 下列四个叙述中,错误的是_______________。 A. 一个C源程序必须有且只能有一个主函数 B. 一个C源程序可以含零个或多个子函数 C. 在C源程序中注释说明必须位于语句之后 D. C源程序的基本结构是函数 7. 编辑程序的功能是 。 A. 建立并修改程序

B. 将C源程序编译成目标程序 C. 调试程序 D. 命令计算机执行指定的操作 8. C编译程序是 。 A. C语言程序的机器语言版本 B. 一组机器语言指令

C. 将C源程序编译成目标程序的程序

第1 页/共 29页

基础知识和顺序结构

D. 由制造厂家提供的一套应用软件 9. 以下叙述不正确的是____________。 A. 分号是C语句的必要组成部分 B. C程序的注释可以写在语句的后面 C. 函数是C程序的基本单位 D. 主函数的名字不一定用main表示

10. C语言中允许的基本数据类型包括_______。 A. 整型、实型、逻辑型 B. 整型、实型、字符型 C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型

11. C语言中能用八进制表示的数据类型为________。 A. 字符型、整型 B. 整形、实型

C. 字符型、实型、双精度型 D. 字符型、整型、实型、双精度型

12. 下列属于C语言合法的字符常数是___________。 A. ’\\97’ B. ”A” C. ’\\t’ D. ”\\0”

13. 设所有变量均为int型,则表达式(a=2,b=5,b++,a+b)的值是 A. 7 B. 8 C. 6 D. 2

14. 在C语言中,要求运算数必须是整型的运算符是: A. / B. ++

C. != D. %

15. 设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取

值范围为 A. 0-255 B. 1-32767 C. 0-65535

D. 0-2147483647

16. 下面不正确的字符串常量是: A. 'abc' B. \C. \D. \ \

17. 表达式 18/4*sqrt(4.0)/8值的数据类型是:

第2 页/共 29页

A. int B. float C. double D. 不确定

18. 若有以下定义:

char a;int b;

float c;double d;

则表达式a*b+d-c值的类型为:

A. float B. int C. char D. Double

19. 不属于字符型常量的是 A. 'A' B. \ C. '\\n' D. '\\x72'

20. 在C语言中,合法的长整型常数是____________。 A. 0L B. 4962710 C. 0412765 D. 0xa34b7fe

21. 若有以下定义语句char c1=’b’, c2=’e’; printf(“%d,%c\\n”,c2-c1,c2-‘a’+’A’);则

输出结果是__________。 A. 2,M B. 3,E

C. 2,E

D. 输出项与相应的格式控制不一致,输出结果不确定 22. 设char ch; 以下正确的赋值语句是: A. ch='123'; B. ch='\\xff'; C. ch='\\08'; D. ch=\

23. 若t为double类型,表达式t=1,t+5,t++的值是 A. 1 B. 6.0 C. 2.0 D. 1.0

24. 设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是 A. 0,0 B. 0,1 C. 1,0 D. 1,1

第3 页/共 29页

25. 若a=1,b=2,c=3,d=4,则条件表达式a

26. 设a=2,则执行b=a==!a;语句后,b的结果是 A. 0 B. 1 C. 2 D. 3

27. 设有以下语句,则c的二进制值是

char a=3,b=6,c; 解: a=00000011,b=00000110 c=a^b<<2; a^b=00000101 c=00010100 A. 00011011 B. 00010100 C. 00011100

a) 00011000

28. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是 D A. 把x和y按从大到小排列 B. 把x和y按从小到大排列 C. 无确定结果 D. 交换x和y中的值 (二) 填空题

1. C语言中的标识符只能由三种字符组成,它们是 字母 、 数字 、 下划线 。 2. 一个C语言程序有且仅有一个_main_函数。

3. 结构化设计中的三种基本结构是顺序,分支,循环。

4. C语言程序的执行是从__main函数__开始执行的。 5. C语言源程序文件后缀是_c或cpp_,经编译后生成文件的后缀是_obj__。经链接后

生成文件的后缀是_exe__。

6. C语言源程序的语句分隔符是__;__。

7. 若a是int型变量,且a的初值为6,则执行下面表达式后a的值为 -60 。

a+=a-=a*a 解:a=a-36=-30 a=a+(-30) 8. ‘\\72’在内存中占 1 个字节,”\\72”在内存中占 2 个字节。 9. 若有以下定义语句:int a=5; printf(“%d\\n”,a++); 则输出结果是___5__。 10.C语言中的基本数据类型分为 整 型、 实 型和 字符 型。 11.C语言的实型可分为 float 型和 double 型。

12.若有以下定义语句:int u=010,v=0x10,w=10; printf(“%d,%d,%d\\n”,u,v,w); 则输出结果

是 _8,16,10_。 13.下面程序的输出是_k=11,k=13,k=b__。

main()

{int k=11;

printf(\

14.若有以下定义语句:int a=5; printf(“%d\\n”,a++); 则输出结果是_____5_____。

第4 页/共 29页

15.设x为int型变量,执行以下语句,x=10; x+=x-=x-x; x的值为__20___。

16.若有定义int a=10,b=9,c=8; 接着顺序执行下列语句后,变量b的值为___3____。 c=(a-=b-5);

c=(a)+(b=3);

17.设有以下定义,并以赋予了确定的值:char w; int x; float y; double z;则表达式w*x+z-y所求得值的数据类型为___double_____。

18.设x和y均为int型变量,且x=10和y=3则以下语句的输出结果是__10,2_______。 Printf(“%d,%d\\n”,x++,--y); 19.下列程序的输出结果是__2,1 ___。 main() {int a=1,b=2;

a+=b; b=a-b; a-=b; printf(“%d,%d\\n”,a,b);} 20.以下程序执行结果是: 2,1 main( )

{int a,b,d=241; a=d/100%9;

b=(-1)&&(-1);

printf(\

21.以下程序执行结果是: 3.14159,3.1416,3.142 main( )

{float f=3.1415927;

printf(\

22.以下程序输入1 2 3↙后的执行结果是: a=1,b=2,c=3 main( ) {int a,c;

char b;

scanf(\

printf(\

23.以下程序输入123456后的执行结果是: a=12,b=345 main( )

{int a,b;

scanf (\printf(\

24.以下程序输入ABC 后的执行结果是: c=A main( ) {char c;

scanf(\

printf(\

二、 分支结构 (一) 选择题

1. 选择合法的条件语句(设int x,a,b,c;) ( )。 A. if (a=b) ++x;

第5 页/共 29页

B. if (a=b) ++x; D. if (a>=b) ++x;

2. 执行下列程序,输入为1的输出结果是( A ),输入为4的输出结果是( C ),输

入为3的输出结果是( D )。 main( ) {int k;

scanf(\ switch(k) {case 1:

printf(\ case 2:

printf(\ break; case 3:

printf(\ break;

case 4:

printf(\ case 5:

printf(\ break; default:

printf(\ A. 1↙2 B. 1 C. 4↙5 D. 3 (二) 填空题

1. 下列程序运行后输出结果是__end___。

main( )

{int a,b,c; a=2;b=3;c=1; if(a>b) if(a>c)

printf(\ else

printf(\ printf(\

2. 以下程序执行结果是__d=1_____。

main( )

{int a,b,c,d,x; a=b=c=0; d=1;

第6 页/共 29页

if(a) d=d-10; else if(!b)

if(!c) x=6; else x=7;

printf(\

3. 若从键盘输入m,下列程序执行结果是___M____。

main( ) {char c;

printf(\ scanf(\ if('a'<=c&&c<='z') c=c-32;

printf(\

4. 若上题中,从键盘输入B,程序执行结果是___B____。

5. 若从键盘输入7,10,1,3,则下列程序执行结果是 a=7,b=10,c=1,d=3 ↙

1 3 7 10。

main( )

{int a,b,c,d,t;

scanf(\

printf(\ if (a>b)

{t=a;a=b;b=t;} if (a>c)

{t=a;a=c;c=t;} if (a>d)

{t=a;a=d;d=t;} if (b>c)

{t=b;b=c;c=t;} if (b>d)

{t=b;b=d;d=t;} if (c>d)

{t=c;c=d;d=t;}

printf(\6. 以下程序的执行结果是__ first↙third_。 main( )

{int x=1,y=0; switch(x) { case 1:

switch(y)

{ case 0:printf(\ case 1:printf(\

case 2:printf(\

7. 执行以下程序,输入-10的结果是__x=0_,输入5的结果是_ x=5_,输入10的结果

是_ x=10__,输入30的结果是__ x=5_。 main( ) {int a,b; float x;

scanf(\ if(a<0) b=-1; else b=a/10;

第7 页/共 29页

switch(b)

{case -1:x=0;break; case 0:x=a;break; case 1:x=10;break; case 2:

case 3:x=-0.5*a+20;break; default:x=-2; }

if(x!=-2) printf(\

else printf(\

三、 循环结构

(一) 选择题

1. 若i,j已定义为int型,则以下程序段中内循环体的执行次数是( for(i=5;i;i--)

for(j=0;j<4;j++) {……} A. 20 B. 24 C. 25 D. 30

2. 若i,j已定义为int型,则以下for循环是( )。 for(i=0,j=0;(j!=123)&&(i<4);i++); A. 无限循环 B. 循环次数不定 C. 执行4次

D. 执行3次

3. 对于for(表达式1; ; 表达式3)可以理解为( )。 A. for(表达式1;0; 表达式3) B. for(表达式1;1; 表达式3)

C. for(表达式1; 表达式1; 表达式3)

D. for(表达式1; 表达式3; 表达式3) 4. 执行下列程序段后,x值是( A ),i值是( C )。 int i,x;

for(i=1,x=1;i<=20;i++) {if(x>=10) break; if(x%2==1) {

x+=5;

continue; } x-=3; } A. 10 B. 7 C. 6 D. 14

第8 页/共 29页

。 )

5. 下列程序的执行结果是( )。 #include main( )

{int s=0, k;

for(k=7;k>=0;k--) {switch(k) {case 1: case 4: case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+=2;

break; } }

printf(\,s); } A. s=4 B. s=7 C. s=3 D. s=5

6. 下列程序段执行结果是输出( )。 x=3; do {

printf(\,x--); } while(!x); A. 0 B. 3 C. 321 D. 210 (二) 填空题

1. C语言while和do…while循环的主要区别是 前者先判后做 ,后者先做后判 2. 以下程序输出结果是 1↙2↙3 。 main( )

{int num=0; while(num<=2) {num++;

printf(\

3. 下列程序运行输出结果是 1

2 2 3 3 3 4 4 4 4 5 5 5 5 5

第9 页/共 29页

6 6 6 6 6 6

main( )

{int i,j,k;

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

{for(j=1;j<=20-2*i;j++) printf(\ for(k=1;k<=i;k++) printf(\ printf(\

4. 下列程序执行结果是 237↙273 。 main( )

{int i=2,j,k;

for(j=0;j<=9;j++) for(k=0;k<=9;k++)

if(i*j*k==42&&i+j+k==12)

printf(\

5. 下列程序执行时,若从键盘输入124cmknp 03↙,结果是 d=5 s=1 a=5 。 main( ) {char c; int d,s,a; d=s=a=0;

c=getchar( ); while(c!='\\n') { if(c<='9'&&c>='0') d=d+1; if(c==' ') s=s+1;

if(c<='z'&&c>='a'||c<='Z'&&c>='A') a=a+1;

c=getchar( ); }

printf(\

6. 下列程序执行结果是 72 。

main( )

{int i,j,k,s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) for(k=0;k<2;k++) s=s+i+j+k; printf(\,s); }

7. 下列程序执行结果是 0 1↙2 4↙6 9↙12 16↙17 19↙21 24↙27 31↙35 40↙42

45↙48 52↙56 61↙66 72 (↙代表回车换行) 。 main( )

{int i,j,k,s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) {for(k=0;k<2;k++) {s=s+i+j+k;

printf(\,s);} printf(\; } }

第10 页/共 29页

C. 8,20 D. 8,8

6. 以下程序的输出结果是( )。 int func(int a) { int b=0;

static c=3; b++;c++;

return(a+b+c); }

main()

{ int a=2,i;

for(i=0;i<3;i++) A. 777 B. 7□7□7 C. 789 D. 7□8□9

7. 以下程序输出结果是( )。 int i=10; int fun( ) { int k=0; k=k+i; i=i+10; return(k); } main( )

{ int j=1; j=fun( ); printf(\ j=fun( ); printf(\A. 0,0 B. 10,20 C. 10,10 D. 20,20

8. 以下程序输出结果是( )。 int i=10; main( )

{ int a=3,b=2,c=1; c-=++b; b*=a+c;

{ int b=5,c=12; c/=b*2; a-=c; printf(\ a+=--c; } printf(\A. 3,2,1,3,2,-2 B. 2,5,1,3,5,12

第16 页/共 29页

printf(\

C. 2,5,1,2,3,-2 D. 3,2,1,3,5,12

9. 以下程序的输出结果是( )。 int func(int m) {int n;

if(m==0||m==1)return(3); n=m-func(m-2); return n; } main()

{printf(\A. 7 B. 2 C. 0 D. 3 (二) 填空题

1. 以下程序的执行结果是 x=3 。

int x=3;

void func(int x) {x=8; } main() {func(x);

printf(\

1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

2. 下列程序运行后的输出结果是 6 6 6 6 6 6 。

main()

{int i,z,k;

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

{for(z=1;z<21-2*i;z++) printf(\ for(k=1;k

* * * * * * * * *

3. 下列程序运行后输出结果是 * * * * * * * * * * * * * * *

*

main()

{ int i,z,k; for(i=1;i<5;i++) { for(z=1;z<21-3*i;z++) printf(\ for(k=1;k<2*i;k++)

第17 页/共 29页

printf(\ printf(\ for(i=3;i>0;i--) { for(z=1;z<21-3*i;z++) printf(\ for(k=1;k<2*i;k++) printf(\ printf(\

4. 以下程序的执行结果是 x=20 。 main()

{void func(int x); int x=20; func(x);

printf(\ void func(int x) {x=30; }

5. 以下程序执行结果是 a=10,b=3 。 void main() { void swap(); extern int a,b; a=3; b=10; swap(); printf(\} int a,b; void swap() { int temp; temp=a;a=b;b=temp;}

6. 以下程序的执行结果是 s=10 。 void main()

{ int s,i,sum(int z); for(i=1;i<11;i++) s=sum(i); printf(\ int sum(int z) { int x=0;

return(x+=z);}

7. 将上题函数sum中x变量存储类型定义为static型,即static int x=0;程序的执行结果是 s=55 。

8. 以下程序的执行结果是 1.x=3 。 2.x=6 3.x=1

4.x=3

static int x=5; void main( ) { auto int x=3; void f1( ); void f2( ); printf(\ f1( );

第18 页/共 29页

f2( ); printf(\ void f1( ) { x+=1; printf(\ void f2( ) { int x=1; printf(\(三) 程序填空题

1. 下列程序的功能是统计从键盘上输入的字符中大写字母的个数。输入时用“*”作为输入结束标记。请为程序填空。 # include main() {char cl;

int count=0;

while(( cl=getchar() )!='*') if(isupper(cl)) count++;

printf(\共有%d大写字母 \count); }

2. 完成下面的程序,使它能够输出10~1000之间的所有素数。(只有能被本身及1除尽

的数,称为素数)

# include main( ) { int i;

int isprime(int n);

for (i=10;i<=1000; i++) if(isprime(i))

printf(\ printf(\

# include int isprime(int n) { int i;

for(i=2;i<=sqrt(n);i++) if(n%i==0)return( 0 ); return( 1 ); }

六、

(一) 选择题

1. 设int *p,i;以下正确合理的语句是( )。 A. *p=10; B. i=p; C. i=*p; D. i=2*p+1;

2. 设char s[10]; int i; 以下引用数组s中元素正确的表达式是( )。 A. s(i+2); B. *(s+i) C. *(&s+i) D. *((s++)+i)

3. 若有定义和语句

第19 页/共 29页

指针

int **pp,*p,a=10,b=20; pp=&p;p=&a;p=&b;

printf(“%d,%d\\n”,*p,**pp); 则输出结果是( )。 A. a=10,20 B. 10,10 C. 20,10 D. 20,20

4. 若定义char s[20]=“programming”,*ps=s;则不能代表字符o的表达式是( )。 A. ps+2 B. s[2] C. ps[2]

D. ps+=2,*ps

5. 若有定义和语句

char *s1=”12345”,*s2=”1234”;

printf(“%d\\n”,strlen(strcpy(s1,s2))); 则输出结果是( )。

A. 4

B. 5 C. 9 D. 10

6. 若定义 int a[ ] ={1,2,3,4,5,6,7,8,9,10},*p=a; 7. 则值为 3的表达式是 ( ) A. p+=2 ,*(p++) B. p+=2 , *++p

C. p+=3 ,* p++ D. p+=2 , ++*p 8. 若有以下定义和语句

int w[2][3] , (*pw )[3] ; pw=w; 则对数组元素的非法引用是( ) A. *(w[O]+2) B. *pw[2]

C. pw[O][O] D. *(pw[1]+2)

9. 设有定义 int (*ptr)[M];其中ptr是( )。 A. M个指向整型变量的指针

B. 指向M个整型变量的函数指针

C. 一个指向具有 M个整型元素的一维数组的指针

D. 具有M个指针元素的一维指针数组,每个元素都只能指向整型量 10. 设有以下一段程序

char s[ ]=”Hello”; char *p=s;

执行完上面程序段后,*(p+5)的值为( )。

A. ‘o’

第20 页/共 29页

if(stud[i].score>stud[max].score) max=i; else if(stud[i].score

printf(\最高分:%s,%d\\n\stud[max].name,stud[max].score) ; printf(\最低分:%s,%d\\n\stud[min].name,stud[min].score); }

八、 文件 (一) 选择题

1. 若存在一个”file.txt”文件,执行函数fopen(“file.txt”,”r+”)调用的功能

是( )。

A. 打开file.txt文件,清除原有内容。

B. 打开file.txt文件,只能写入新的内容。 C. 打开file.txt文件,只能读取原有内容。 D. 打开file.txt文件,可以读取和写入新的内容。

2. fopen( )函数的mode取值”w+”和”a+”时都可以写入数据,它们之间的差别是

( )。

A. ”w+“时可在中间插入数据,而”a+”只能在末尾追加数据 B. 文件存在时,”w+”清除原文件数据,”a+”保留原文件数据 C. ”w+”和”a+”都是只能在末尾追加数据

D. ”w+”不能在中间插入数据,”a+”只能在末尾追加数据。 3. C语言中,文件由( )组成。 A. 记录 B. 数据块 C. 数据行 D. 字符或字节序列

4. 若用fopen( )函数打开一个新的二进制文件,该文件可读可写,则文件打开模式字符串是( ) A. ”ab+” B. ”wb+” C. ”rb+” D. ”ab”

5. 使用fseek( )函数可以实现( )操作。 A. 文件的随机读写 B. 文件的顺序读写

C. 改变文件指针的当前位置 D. 以上都不对

6. 函数rewind( )的作用是( )。 A. 使文件指针重新指向文件开头。

B. 使文件指针重新指向文件末尾。

C. 将文件指针指向文件中要求的特定位置。 D. 使文件指针自动指向下一个字符。 7. fread(buf,64,3,fp)的功能是( )。

A. 从fp文件流中读出整数64,并存放在buf中。

B. 从fp文件流中读出整数64和3,并存放在buf中。

C. 从fp文件流中读出64个字节的字符,并存放在buf中。

第26 页/共 29页

D. 从fp文件流中读出3个64个字节的字符,并存放在buf中。 8. 检测fp文件流的文件指针在文件头的条件是( )。 A. fp= =0 B. ftell(fp)= =0

C. fseek(fp,0,SEEL_SET) D. feof(fp) 9. 以下程序的功能是( )。

main( ) {FILE *fp;

char str[ ]=\ fp=fopen(\ fputs(str,fp); fclose(fp);} A. 在屏幕上显示”GOOD!” B. 把”GOOD!”存入PRN文件中 C. 在打印机上打印出”GOOD!” D. 以上都不对

10. 命令行输入file abc xyz命令的功能是( )

/*filename:file.c*/

main (int argc,char *argv[ ]) {FILE *fp1,*fp2; if (argc<3)

{ printf(\ exit(0); }

fp1=fopen(argv[1],\ fp2=fopen(argv[2],\ while (!feof(fp1))

fputc(fgetc(fp1),fp2); fclose(fp1); fclose(fp2);} A. 将文件xyz复制到abc文件 B. 将文件abc复制到xyz文件

C. 读取abc文件的内容并在屏幕上显示出来 D. 读取xyz文件的内容并在屏幕上显示出来 11. 以下程序的功能是( )

#include main( ) {FILE *fp;

fp=fopen(“abc”,”r+”); while (!feof(fp))

if(fgetc(fp)= =‘*’)

{fseek(fp,-1L,SEEK_CUR); fputc(‘$’,fp);

fseek(fp,ftell(fp),SEEK_SET); }

fclose(fp); } A. 将abc文件中所有’*’替换成’$’

第27 页/共 29页

B. 查找abc文件中所有’*’ C. 查找abc文件中所有’$’

D. 将abc文件中所有字符替换成’$’

12. 执行下列程序后,abc文件内容是( )

main( )

{FILE *fp;

char *str1=“first”; char *str2=“second”;

if ((fp=fopen(“abc”,”w+”))= =NULL) {printf(“can’t open abc file\\n”); exit(1); }

fwrite(str2,6,1,fp); fseek(fp,0L,SEEK_SET); fwrite(str1,5,1,fp); fclose(fp); } A. first B. second C. firstd D. secondfirst

13. 若上题将fseek语句去掉,程序执行结果是(D )

14. 修改12题打开文件函数调用中“w+”为”a+”,程序执行结果是( D )。 (二) 填空题

1. C语言中根据数据的组织形式,把文件分为 文本文件 和 二进制文件 两种。 2. 使用fopen(“abc”,”w+”)打开文件后,写入新数据保留原数据的操作均在文件末尾进行,这句话是 正确的 。

3. C语言中文件位置指针设置函数是 fseek( ) ;文件指针位置检测函数是ftell( ) 。

4. 设a数组定义为:int a[10];则fwrite(a,2,10,fp)的功能是将数组a中10个整

数写入fp指定的磁盘文件中 。

5. 以下程序执行结果是 1 2 3 4 5 6 7 8 9 10 。

#include main( )

{FILE *fp;int i,n;

if ((fp=fopen(“abc”,”w+”))= =NULL) {printf(“can’t open abc file\\n”); exit(0); }

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

fprintf(fp,”=”,i); for (i=0;i<10;i++)

{fseek(fp,i*3l,SEEK_SET); fscanf(fp,”%d”,&n); printf(“=”,n); } fclose(fp); }

6. 请将下列程序填写完整。本程序完成把一系列命名文件与标准输出连接起来,并在

终端上显示出文件内容。

main (int argc,char *argv[ ]) { FILE *fp ;

第28 页/共 29页

if (argc==1)

filecopy(stdin); else

while (--argc>0)

if ((fp= fopen(*++argv,”r”) )==NULL) {printf(“can’t open %s\\n”,*argv); break; } else

{filecopy(fp); fclose(fp) ;}}

filecopy(FILE *fp) {int c;

while ((c= fgetc(fp) )!=EOF)

putc(c,stdout);}

九、 编程题

1. 输入10个字符,统计其中英文字母、数字字符和其他字符的个数。(分支结构) 2. 输入一个正整数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1

个自身整除的正整数。(循环)

3. 计算1!+2!+3!+ ??+100!。要求定义和调用函数fact(n)计算n的阶乘。(循环、

函数)

4. 输入一批正整数(以0或负数为结束标志),求其中的奇数和。要求定义和调用函数

even(n)判断数的奇偶性,当n为偶数时返回1,否则返回0。(函数) 5. 输入一个正整数n(1

6. 将一个3×2的矩阵存入一个3×2的二维数组中,找出最大值及它的行下标和列下标,并输出该矩阵。(二维数组)

7. 输入5个字符串,将它们从大到小排序后输出。(指针数组、指向指针的指针) 8. 输入一个字符串和一个字符,如果该字符在字符串中,就从该字符首次出现的位置

开始输出字符串中的字符。例如,输入字符r和字符串program后,输出rogram。要求定义函数match(s,ch),在字符串s中查找字符ch,如果找到返回第一次找到的该字符在字符串中的位置(地址);否则,返回空指针NULL。(指针作函数返回值)

第29 页/共 29页

本文来源:https://www.bwwdw.com/article/2liv.html

Top