c语言练习题

更新时间:2024-04-15 11:52:01 阅读量: 综合文库 文档下载

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

C语言试题库(第1、2、3章) 一、选择题 1、 一个C程序由若干个C函数组成,各个函数在文件中的位置为___________。 A、 任意 B第一个函数必须是主函数,其他函数任意

C必须完全按照顺序排列 D其他函数必须在前,主函数必须在最后 2、 下列四个叙述中,正确的是_______________。 A、 C程序中的所有字母都必须小写

B、 C程序中的关键字必须小写,其他标示符不区分大小写 C、 C程序中的所有字母都不区分大小写 D、 C语言中的所有关键字必须小写

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

4、 下面属于C语言关键字的是_____________。

A、int B、typedef C、enum D、unien 5、 以下叙述不正确的是____________。 A、 分号是C语句的必要组成部分 B、 C程序的注释可以写在语句的后面 C、 函数是C程序的基本单位

D、 主函数的名字不一定用mian表示

6、 C语言中允许的基本数据类型包括_______。

A、 整型、实型、逻辑型 B整型、实型、字符型

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

C、字符型、实型、双精度型 D、字符型、整型、实型、双精度型 8、 下列属于C语言合法的字符常数是___________。 A、'\\97' B、\ C、'\\t' D、\

9、在VC++6.0中,5种基本数据类型的存储空间长度的排列顺序为:_____ A、char<int

C、a>=10 || a<=0 D、a>=10 && a<=0 16、下列只有当整数x为奇数时,才是逻辑\真\的表达式是_________。 A、x%2= =0 B、!(x%2= =0) C、(x-x/2*2)= =0 D、!(x%2)

17、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是_________。

A、10<a<15 B、a= =11 || a= =12 || a= =13 || a= =14 C、a>10 && a<15 D、!(a<=10)&&!(a>=15) 18、已知x=43, ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是________。

A、0 B、语法错 C、1 D、\假\ 19、表达式17%4 /8的值为______________。

A、0 B、1 C、2 D、3

20、语句printf(\的输出结果是___________。 A、无输出 B、结果不确定 C、-1 D、1

二、填空题

1、 若有以下定义语句:int u=010,v=0x10,w=10; printf(\则输出结果是 __________。

2、 下面程序的输出是_____________。 Main()

{unsigned a=32768; printf(\

3、 下面程序的输出是_________。 Main() {int k=11;

printf(\

4、 若有以下定义语句:int a=5; printf(\则输出结果是____________。 5、 设x为int型变量,执行以下语句,x=10; x+=x-=x-x; x的值为__________。 6、 若定义x和y为double型变量,则表达式x=1, y=x+3/2的值是__________。 7、 若t为double型变量,表达式t=1, t+5, t++的值是_________。 8、 表达式10!=9的值是______________。

9、 设x,y,z和t均为int型变量,执行以下语句:x=y=z=1; t=++x||++y&&++z; 后t的值为____________。 10、a=1,b=2,c=3,d=4,则表达式a<b?a:c<y)?m:y;m=(m main() {

int i=010,j=10;

printf(\ }

A) 11,10 B) 9,10 C) 010,9 D) 10,9 13、请读程序 int i =65536 printf(\

上面程序的输出结果是_____

A) 65535 B) 0 C) 有语法错误,无输出结果 D) 1

14、已知字符A的ASCII码为十进制的65,下面程序的输出是_____ main() {

char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3';

printf(\ }

A) 67,D B) B,C

C) C,D D) 不确定的值 15、若有定义和语句:

char s[10]; s=\ printf(\; 则结果是_____

A) 输出 abcd B) 输出 a

C) 输出 adcb D) 编译不能通过

16、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处代表换行,代表空格):

1 2 A B C

则能给X赋整数1,给Y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是_______

A) scanf(\

B) scanf(\ C) scanf(\

D) scanf(\

17、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是____ main() { int x;

scanf(\

if (x++>5) printf(\ else printf(\ }

A) 7和5 B) 6和3 C) 7和4 D) 6和4

18、若执行下面的程序从键盘输入3和4,则输出是_______ main() { int a,b,s;

scanf(\ s=a;

if (a

scanf=\i=\a=\回车> B)i=100,f=765.12<回车>

C)100<回车>765.12<回车> D)x=100<回车>,y=765.12<回车> 20、以下程序的输出结果是____ #include main() {

printf(\ }

A) 不确定 B) 0 C) -1 D) 1 二、填空题

1、复合语句在语法上被认为是________,空语句的形式是______。

2、\表示如果串长______m,则在m列范围内,字符串向_____靠,____补空格。

3、如果想输出字符\,则应该在\格式控制\字符串中用_____表示。 4、printf函数的\格式控制\包括两部分,他们是______和_______。 5、符号'&'是_______运算符,&a是指________. 6、putchar 函数的作用是____________.

7、复合语句是由一对 _______括起来的若干语句组成的。 8、goto语句的主要用途是________和________。 9、getchar 函数的作用是__________.

10、把for(表达式1;表达式2;表达式3);改写为等价的while语句为_______. 11、语句标号由标识符表示,由______、_________和________组成。第一个字符必须是字母或下划线。

12、函数中的\格式控制\后面应当是_________,而不是________。 13、while语句的特点是_______,do-while语句的特点是________。 14、分析下面程序 main() { int x,y;

x=16;y=(x++)+x; printf(\ x=15;printf(\ x=20;y=x--+x; printf(\ x=13;printf(\ }

程序的输出结果是_____________。 15、下列程序的输出结果是__________: #include\ main()

{ char b[]=\ char *chp=&b[7]; while(--chp>&b[0]) putchar(*chp); putchar ('\\n'); }

三、编程题

1、编写程序,输入两个整数:1500和350,求出它们的商和余数并输出。

2、编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,b中原来的值给c, c中原来的值给a,且输出改变后的a,b,c的值。

3、输入两个整型变量a,b的值,输出a+b,a-b,a*b,a/b,(float)a/b,a%b的结果,要求连同算式一起输出,每个算式占一行。

例:a等于10,b等于5,a+b的结果输成 10+5=15

4、输入一个非负数,计算以这个数为半径的圆周长和面积。

5、输入任意一个三位数,将其各位数字反序输出(例如输入123,输出321). 6、输入任意大小的三个整数,判断其中是否有两个奇数一个偶数。若是,则输出\,不是则输出\(要求用条件表达式进行判断,不使用if语句)

7、求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这三个字符及其对应的ASCII码值。 第五、六章

一、选择题(30题) 1、有以下程序 main( ) { int i;

for ( i=0; i<3; i++ ) switch ( i )

{ case 1 : printf(\ case 2 : printf(\ default : printf(\ } }

执行后输出结果是 ( )

A)011122 B)012 C)012020 D)120 2、有以下程序 main()

{ int i=1, j=1, k=2;

if ( (j++ || k++) && i++) printf(\ }

执行后输出结果是 ( )

A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 3、有以下程序 main()

{ int a=5,b=4,c=3,d=2; if (a>b>c) printf(\

else if ( (c-1 >= d) = =1) printf(\ else

printf(\ }

执行后输出结果是 ( )

A)2 B)3 C)4 D)编译时有错,无结果 4、有以下程序 main()

{ int i=0,s=0;

do {

if (i%2) { i++; continue; } i++; s += i;

} while( i<7 ); printf(\ }

执行后输出结果是 ( )

A)16 B)12 C)28 D)21 5、以下程序的输出结果是 ( ) main()

{ int a=5,b=4,c=6,d;

printf(\ }

A) 5 B) 4 C) 6 D) 不确定 6、以下程序中,while循环的循环次数是( ) main() { int i=0;

while(i<10)

{ if(i<1) continue; if(i= =5) break; i++; } }

A) 1 B) 10 C) 6 D) 死循环,不能确定次数 7、以下程序的输出结果是( ) main( ) { int a=0,i;

for(i=1;i<5;i++) { switch(i) { case 0:

case 3: a+=2; case 1:

case 2: a+=3; default: a+=5; } }

printf(\ }

A) 31 B) 13 C) 10 D) 20 8、以下程序的输出结果是( ) main()

{ int a=4,b=5,c=0,d;

d=!a&&!b||!c; printf(\ }

A) 1 B) 0 C) 非0的数 D) -1 9、以下程序的输出结果是( ) #include main()

{ int i=0,a=0; while(i<20)

{ for( ; ; ) { if((i)==0) break; else i--; }

i+=11; a+=i; }

printh(\ }

A) 21 B) 32 C) 33 D) 11 10、阅读以下程序:( ) main() { int x;

scanf(\

if(x--<5) printf(\ else printf(\ }

程序运行后,如果从键盘上输人5,则输出结果是 A)3 B) 4 C) 5 D) 6

11、假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4;

m=(w

7、以下程序输出的结果是 。 main()

{ int a=5,b=4,c=3,d; d=(a>b>c); printf(\ }

8、以下程序的输出结果是 。 main() {int s,i;

for(s=0,i=1;i<3;i++,s+=i); printf(\ }

9、以下程序运行后的输出结果是 。 main()

{ int i=10, j=0; do

{ j=j+i; i-;

while(i>2); printf(\ }

10、设有以下程序: main() { int n1,n2;

scanf(\ while(n2!=0) { n1=n2; n2=n2/10;

printf(\ } }

程序运行后,如果从键盘上输入1298;则输出结果为 11、下列程序段的输出结果是 。 int n='c'; switch(n++)

{ default: printf(\

case 'a': case 'A': case 'b': case 'B': printf(\ case 'c': case 'C': printf(\ case 'd': case 'D': printf(\ }

12、下面程序输出结果是 。 main()

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

{case 0: a++;break; case 1: b++;break; } case 2:

a++;b++;break;

。 }

printf(\,a,b); }

13、程序执行后的输出结果是 。 main( ) { int x=0,y=5,z=3;

while(z-->0&&++x<5) y=y-1; printf(\}

14、若有 int ⅰ=5, j=10;则执行完语句 switch (i){ case 4: j + +; case 5: j - - ; case 6: j + +; case 7: j - =2; default: ; }

后j的值 。 15、有以下程序 main()

{ int n=0,m=1,x=2; if (!n) x-=1; if (m) x-=2; if (x) x-=3;

printf (\; }

执行后的输出结果是 。 16、 main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf(\

else if((c-1>=d)= =1) printf(\else

printf(\}

执行后输出的结果是 。

17、当a=1,b=3,c=5,d=4时,执行完下面的一段程序后x的值是 。

if (a

else s += k;

printf(\,s=%d\

19、输入c2470f ?<回车>后,下列程序的输出结果是 。 #include

main( )

{ char ch; long number=0;

while((ch=getchar( ))<'0'|| ch>'6') ; while(ch!='?'&&ch>='0'&&ch<='6') { number=number*7+ch-'0'; printf(\ ch=getchar( ); }

20、输入4<回车>后,下列程序的输出结果是 。 #include main( ) { int j,k,n; float f,s;

scanf(\ s=0; f=1;

for(k=1;k<=n;k++) {

for(j=1;j

for(i=0; ; i++) { j=i*10+6;

if( ) continue; printf(\ } }

22、下面程序的功能是求1!+2!+3!+4!+5!,请填空: main( )

{ int i, j, f, sum=0; for(i=1;i<=5;i++) { f=1;

for(j=1; ; j++) ;

sum=sum+f; }

printf(\ } 23、以下程序可判断输入的一个整数是否能被3或7整除,若能整除,输出\,否则输出\。请填空。

#include main() { int k;

printf(\ scanf(\

if

printf(\ else

printf(\ \ }

24、以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用i统计大于零的个数,用变量j统计小于零的整数。请填空。 Main()

{ int n, i, j;

printf(\ i=j=0;

scanf (\ while { if (n>0) i++; if (n<0) j++; ; }

printf(\ }

25、如果一个数的各位数的立方和等于它本身,则这样的数称为水仙花数求100~999中所有的水仙花数。 main()

{ int i,a,b,c;

for ( i=100;i<=999;i++) { a=i/100;

b= ; c=i;

if ( )

printf(\ }

26、输入1 个正整数 n, 计算并输出 s 的前n项的和。 S = 1 -1/2 + 1/3 - 1/4 + 1/5 -1/6 + ...... #include main( )

{ int k, flag, n; float s; flag=1; s=0;

scanf(\

for (k=1 ; k<=n; k++){ s=s+ ; ; }

printf(\ }

27、输出下列图形。

1 2 3 4 5 6 7 8 9 main()

2 3 4 5 6 7 8 9 int i,j ;

3 4 5 6 7 8 9 for(i=1;i<= ;i++)

4 5 6 7 8 9 {for(j = ;j<=9;j++)printf(\

5 6 7 8 9 printf(\ 6 7 8 9 7 8 9 8 9 9

28、下面程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,最后当输入负数时结束输入。请填空: Main( )

{ float x,amax,amin; Scanf( \ Amax=x; amin=x; While( )_

{ if( x> amax ) amax=x;

If( x

7、铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。编一程序完成自动计费工作。

8、相邻两个奇数都为素数的这样一对数叫双胞胎素数,输出100到200之间的所有双胞胎素数。

9、输入一串字符以\结束,如果它是大写字母转换为小写字母输出,如果是小写字母转换为大写字母输出。如果不是字母,则照直输出。

10、输入一个四位数,要求将它的千位、百位、十位、个位上的数字按由小到大排列,输出一个新数。

(如:输入 4287 要求输出为 2478)

11、输入两门课的成绩,如果两门成绩都在60分以上。则输出\只要有一门低于60分就输出\如果输入的任何一门成绩不在0-100范围内则输出\error.\。(要求用switch语句来编程)

12、求任一数字的所有因子的组合(仅限两个因子),

如:15=1*15 ,15=3*5不能出现重复。如:15=5*3,15=15*1就不用输出。 13、从键盘输入几个数,以0作为结束标志,判断其正负,并求其平方和。 14、编写一个译码程序,把一个英语句子译成数字代码。译码规则是以数字1代替字母a,数字2代替字母b,......26代替字母z, 以数字27代替字母A,数字28代替字母B,......42代替字母Z,如遇空格则打印一个星号'*',英文句子以'.'结束。

15、求所有个位、十位、百位数字能组成一个三角形三边的三位数。(注:三角形任意两边之和大于第三边)

第六章 循环结构 一、选择题

1、以下程序段的输出结果是_______ A)9 B)1 C)11 D)10 int k, j , s ;

for(k=2;k<6;k++,k++) { s=1;

for (j=k;j<6;j++)s+=j; }

printf(\ 2、以下程序段的输出是 A)12 B)15 C)20 D)25 int i,j,m=0;

for (i=1;i<=15;i+=4)

for (j=3;j<=19;j+=4) m++; printf(\

3、以下程序段的输出结果是 A)15 B)14 C)不确定 D)0 int i, sum;

for(i=1;i<6;i++) sum+=sum; printf(\

4、下面程序的输出是____ main()

{int x=3,y=6,a=0; while (x++!=(y-=1)) {

a+=1;

if (y

printf(\ }

A) 10 B) 9 9 8 8 7 C) 10 D) 9 9 8 8 7 7 6 6、以下程序段的输出结果是_____ int x=3; do

{ printf(\ while (!(--x));

A) 1 B) 3 0 C) 1 -2 D) 死循环 7、执行下面的程序后,a的值为_____ main() { int a,b;

for (a=1,b=1;a<100;a++) {

if (b>=20) break; if (b%3==1)

{ b+=3; continue; } b-=5; } }

A) 7 B) 8 C) 9 D) 10 8、读程序: main()

{ int num=0;

while (num<=2)

{ num++; printf(\ }

上面程序的输出结果是______ A) 1 B) 2 2 C) 1 2 3 D) 1 2 3 4

9、以下循环体的执行次数是

A) 3 B) 2 C) 1 main() { int i,j;

for(i=0,j=1; i<=j+1; i+=2, j--)printf(\ }

10、设j为int型变量,则下面for循环语句的执行结果是 for(j=10;j>3;j--)

{

D) 0

if(j%3)j--; --j;--j;

printf(\}

A)6 3 B)7 4

C)6 2 D)7 3

11、在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的

语句是:

A) switch B) continue C) break D) if 二、填空题

1、以下程序段的输出结果是 int k,n,m;

n=10;m=1;k=1;

while (k<=n){m*=2;k++;}

printf(\,m);

2、以下程序的输出结果是 main() { int x=2; while(x--);

printf(\,x); }

3、在循环中,continue语句与break语句的区别是:________________。 4、循环的嵌套是指____________。

5、 break 语句只能用于___________语句和___________语句中。

三、编程题

1、编写程序,求1-3+5-7+....-99+101之值。

2、编写程序,输出从公元1800年到2000年所有闰年的年号. 每输出3个年号换一行。判断年号n为闰年的条件是: (1) 若n能被4整除 但不能被100整除,则n是闰年; (2) 若n能被400整除,则n是闰年。

3、编程求一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?

4、请编程输出9*9口诀。

5、编程将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

6、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

7、一个数如果恰好等于它的因子之和,这个数就称为\完数\。例6=1+2+3.编程找出1000以内的所有完数。

8、本程序演示猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

9本程序演示打印出如下图案(菱形) * *** ****** ******** ****** *** *

第七章、数组试题库 一、 选择题

1、若有以下说明语句:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;

则数值为4的表达式是__________。

A、a[g-c] B、a[4] C、a['d'-'c'] D、a['d'-c] 2、假设int型变量占两个字节的存储单元,若有定义: int x[10]={0,2,4};

则数组x在内存中所占字节数为______。

A、3 B、6 C、10 D、20 3、下列合法的数组定义是_________。

A、int a[]=\ B、int a[5]={0,1,2,3,4,5}; C、char a=\ D、char a[]={0,1,2,3,4,5}; 4、若给出以下定义: char x[]=\

char y[]={'a','b','c','d','e','f','g'}; 则正确的叙述为__________。

A、数组x和数组y等价 B、数组x和数组y的长度相同

C、数组x的长度大于数组y的长度 D、数组y的长度大于数组x的长度 5、若定义如下变量和数组_________。 int j;

int x[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是_________。 For (j=0;j<3;j++) Printf(\

A、1 5 9 B、1 4 7 C、3 5 7 D、3 6 9

6、下列程序运行后的输出结果是______。 Main() {int n[3],t,j,k;

for(t=0;t<3;t++) n[t]=0; k=2;

for(t=0;t

return s; }

main( )

{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(\ }

执行后的输出结果是___________。

A、12 B、11 C、18 D、16 16、有以下程序 void sort(int a[],int n) { in t i,j,t;

for(i=0;i

cd=\d=\hello=\a=\b=\b=\b=\c=\b=\strcpy=\d=\b=\char=\str=\printf=\a=\b=\c=\d=\strcat=\a=\b=\c=\d=\main=\char=\ch=\int=\j=\for=\ s=10*s+ch[j]-'0'; printf(\ }

A、12ba56 B、66521 C、6 D、62

26、设已定义char s[]=\则字符串s所占的字节数是_________。

A、19 B、18 C、15 D、14

27、设已定义char c[8]=\和int j,则下面的输出函数调用中错误的是______。

A、printf(\ B、for(j=0;j<8;j++) printf(\ C、puts(c); D、for(j=0;j<8;j++) puts(c[j]);

28、设已定义char a[10]和 int j,则下面输入函数调用中错误的是_________。 A、scanf(\ B、for(j=0;j<9;j++) scanf(\ C、gets(a); D、for(j=0;j<9;j++) scanf(\ 29、设已定义char x[8]和int j,为了给该数组赋值,下面语句中正确的是_______-。 A、x[8]=\ B、x=\

C、x[]=\ D、for(j=0;j<7;j++) x[i]=getchar(); 30、有如下程序, main()

{int n[5]={0,0,0},j,k=2;

for(j=0;j

7、 以下程序的输出结果是______。 main()

{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};

printf(\ )

8、 以下程序的输出结果是______。

main()

{ char st[20]= \

printf(%d %d \\n\}

9、 若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式) while([i]){ d[j]=__ ___;j++;} d[j]=0;

10、以下程序的输出结果是_______。 f(int b[],int m,int n) { int i,s=0;

for(i=m;i return s; )

main()

{int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7);

printf(\ }

11、以下程序的输出结果是____ _________。 Main()

{char w[][10]={\ for(k=1;k<3;k++) printf(\

12、下列程序运行后的输出结果是_____。 #include main()

{char arr[2][4];

strcpy(arr,\ arr[0][3]='&';

printf(\

13、若想通过以下输入语句使a中存放字符串\中存放字符\,则输入数据的形式应该是________。 Char a[10],b;

Scanf(\

14、下列程序段的输出结果是_________。 Main()

{char b[]=\ b[5]=0;

printf(\

15、以下程序的输出结果是______。 Main()

{int j,k,a[10],p[3]; k=5;

for(j=0;j<10;j++) a[j]=j;

for(j=0;j<3;j++) p[j]=a[j*(j+1)];

for(j=0;j<3;j++) k+=p[j]*2; printf(\ }

16、以下程序运行后,输出结果是____-。 Main()

{int y=18,t=0,j,a[8]; do

{ a[t]=y%2;t++; y=y/2;

}while(y>=1);

for(j=t-1;j>=0;j--) printf(\printf(\}

三、 程序编写

1、求出某数组a[5][5]每行元数的平均值。 2、将二维数组c[3][4]转换成一维数组[12]。

3、计算一个3×3矩阵的主对角线的元素之和sum。

4、将两个字符串连接起来(不用strcat)。

第八章 函数

1. 以下正确的说法是:

建立函数的目的之一是: A. 提高程序的执行效率 B. 提高程序的可读性 C. 减少程序的篇幅

D. 减少程序文件所占内存 2. 以下正确的说法是:

A. 用户若需调用标准函数,调用前必须重新定义

B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C. 系统根本不允许用户重新定义标准函数

D. 用户若需要调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

3. 在C语言中,以下说法正确的是:

A. 普通实参和与其对应的形参各占用独立的存储单元 B. 实参和与其对应的形参共占用一个存储单元

C. 只有当实参和与其对应的形参同名时才共占用存储单元 D. 形参是虚拟的,不占用存储单元

4. 若调用一个函数,且此函数中没有RERURN语句,则关于该函数正确的说法是

A. 没有返回值

B. 返回若干个系统默认值

C. 能返回一个用户所希望的函数值

D. 返回一个不确定的值

5. 在C语言中以下不正确的说法是 A. 实参可以是常量、变量、或表达式 B. 形参可以是常量、变量或表达式 C. 实参可以为任意类型

D. 形参应与其对应的实参类型一致

6. 以下程序有语法性错误,有关错误原因的正确说法是: main()

{ int G=5,k; void prt_char(); ......

k=prt_char(G); ...... }

A. 语句void prt_char();有错,它是函数调用语句,不能用void说明 B. 变量名不能使用大写字母

C. 函数说明和函数调用语句之间有矛盾 D. 函数名不能使用下划线 7. 以下错误的描述是:

函数调用可以 A. 出现在执行语句中 B. 出现在一个表达式中 C. 作为一个函数的实参 D .作为一个函数的形参 8. 以下正确的说法是:

A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可嵌套 C. 函数的定义和调用均不可以嵌套 D. 函数的定义和调用均可以嵌套

9. 若使用一位数组名作函数实参,则以下正确的说法是: A. 必须在主调函数中说明此数组的大小 B. 实参数组类型与形参数组类型可以不匹配 C. 在被调用函数中,不需要考虑形参数组的大小 D. 实参数组名与形参数组名必须一致

10. 折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值,如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请填空。

Binary(int a[10],int m) { int low=0,high=9,mid; while(low<=high) { mid=(low+high)/2;

if(m

sub2=\int=\a=\max=\for=\a=\sub1=\for=\a=\sub3=\a=\int=\i=\for=\printf=\printf=\void=\num=\extern=\int=\x=\int=\a=\x=\y=\int=\x=\main=\int=\a=\x=\y=\num=\printf=\main=\int=\a=\for=\printf=\f=\a=\int=\b=\int=\c=\b=\return=\include=\ main()

{ int n;

scanf(\ printf(\

if(n<0) printf(\-\; n=fabs(n); fun(n);}

fun(int n) { int k,r;

for(k=2;k<=sqrt(n);k++) {r=n%k;

while(r==0) {printf(\ n=n/k;

if(n>1) printf(\ r=n%k; } }

if(n!=1) printf(\ }

16. 以下程序的运行结果是: main()

{increment(); increment(); increment(); }

increment() { int x=0; x+=1;

printf(\ }

17. 以下check函数功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示\否则显示计算后的值。已有函数调用语句check(ponse,value);请填空。

void check(int ponse,float value)

{ int val;

val=________;

printf(\计算后的值:%d\

if(___________) printf(\ done!\\n\

else printf(\ the correct answer is %d\\n\ }

18. 若输入一个整数10,以下程序的运行结果为 main()

{ int a,e[10],c,i=0; scanf(\ while(a!=0) {c=sub(a); a=a/2; e[i]=c; i++; }

for(;i>0;i--) printf(\ }

sub(int a) { int c; c=a%2; return c; }

19.已有函数pow,现要求取消变量i后pow函数的功能不变。填空。 修改前的pow函数: pow(int x, int y) {int i,j=1;

for(i=1;i<=y;++i) j=j*x; return(j); }

修改后的pow函数: pow(int x, int y) { int j;

for(_______;________________:____________) return(j);}

20.以下程序的功能是求三个数的最小公倍数,填空。 max(int x, int y, int z)

{if (x>y &&x.>z) return(x); else if(________) return(y); else return(z); }

main()

{ int x1,x2,x3,i=1,j,x0;

printf(\ 3 numbers:\ scanf(\

j=j*x; x0=max(x1,x2,x3); while(1) {j=x0*i;

if(__________) break; i=i+1; }

printf(\ is %d %d %d zuixiaogongbei is %d\\n\ 21.以下程序的运行结果是: main()

{int x=2,y=3,z=0;

printf(\ add(x,y,z);

printf(\ }

add(int x,int y,int z) {z=x+y; x=x*x; y=y*y;

printf(\ }

22. 下面函数pi的功能是:根据以下公式,返回满足精度(0.0005)要求的π的值,请填空

π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9+...... double pi(double eps) { double s,t; int n;

for(_______;t>eps;n++) {s+=t;

t=n*t/(2*n+1); }

return(________);} main() { double x;

scanf(\

printf(\\neps=%lf, π=%lf\ 23. 下面程序运行结果是___________ long fib( int g) {switch(g)

{case 0: return 0;

case 1:case 2: return 1;}

return(fib(g-1)+fib(g-2)); } main() {long k; k=fib(7);

printf(\

24. 以下程序的运行结果: f(int a[ ]) { int i=0;

while(a[i]<=10) {printf(\ i++;} } main()

{ int a[]={1,5,10,9,11,7}; f(a+1); }

25. 以下程序的运行结果为: main()

{ int a[3][3]={1,3,5,7,9,11,13,15,17}; sum=func(a);

printf(\}

func(int a[][3]) {int i,j,sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) {a[i][j]=i+j;

if(i= =j) sum=sum+a[i][j]; }

return(sum); }

26.已定义一个含有30个元素的数组,函数fav1的功能是按顺序分别赋予各元素从2开始的偶数,函数fav2按顺序每5个元素求一个平均值,并将该值存放在数组w中。填空。

#define SIZE 30 fav1(float s[ ]) {int k,i;

for(k=2,i=0;i

main=\int=\a=\c=\printf=\plus=\x=\y=\int=\z=\z=\return=\int=\a=\max=\int=\c=\c=\ return(c); }

main() { int a=8;

printf(\

32. 以下程序的运行结果是:______________ int n=1; main()

{ static int x=5; int y; y=n;

printf(\ y=- n=-\\n\ func();

printf(\ y=- n=-\\n\ func(); }

func( )

{ static int x=4; int y=10; x=x+2; n=n+10; y=y+n;

printf(\ y=- n=-\\n\

33.已有变量定义和函数调用语句:int x=57; isprime(x);函数isprime( )用来判断一个整型数是否为素数,若是素数,函数返回1,否则返回0。编写isprime函数。 isprime(int a) { }

34.编写程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。要求在主函数中输入字符串及m的值并输出复制结果,在被调用函数中完成复制。

37.从键盘输入一个字符串,然后按照下面要求输出一个新字符串,新串是在原串中,每两个字符之间插入一个空格,如原串为abcd,则新串为abc d. 要求在函数insert中完成新串的产生,并在函数中完成所有相应的输入和输出。

38.设有一数列,包含10个数,已按升序排好。现要求编一程序,它能够把从指定位置开始的n个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用函数。试编程。

39.编一程序,统计从键盘输入的命令行中第二个函数所包含的英文字符个数。 40.编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串。

41.有十个字符串,在每个字符串中,找出最大字符按一一对应的顺序放入一维

数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符,要求用函数实现

42.把两个已按升序排列的数组合并成一个升序数组,要求用函数实现

43.设计程序,它的功能是应用下面的近似公式计算e的n次方。函数f1用来计算每项分子的值,函数f2用来计算每项分母的值,试编写两个函数。 ex =1+x+x 2/2!+x 3/3!+.....(前两项的和) float f2(int n) { }

float f1(int x, int n) { } main( )

{float exp=1.0; int n,x;

scanf(\ printf(\ exp=exp+x;

for(n=2;n<=19;n++) exp=exp+f1(x,n)/f2(n); printf(\ is exp(%d)=%8.4f\\n\ }

44.以下程序的运行结果是_____________ main()

{increment(); increment(); increment(); }

increment()

{ static int x=0; x+=1;

printf(\

45. 以下程序的运行结果是___________ main( ) { incx( ); incy( ); incx( ); incy( ); incx( ); incy( ); }

incx( )

{ int x=0;

printf(\ incy( )

{static int y=0;

printf(\

46.设计一个程序,从键盘输入一个大写英文字母,在主函数中实现。在自定义函数中要求字母的顺序打印出3个相邻的字母,指定的字母在中间。如指定的字母为Z,则打印YZA;若为A,则打印ZAB.

47. 有一数列,该数列的第1,2项分别为0和1,以后每个奇数编号的项是前两项和的绝对值,偶数编号的项是前两项的差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出。试编程

48.从键盘输入若干整数,其值在0至4的范围内,用-1作为输入结束的标志,统计整数的个数。设计函数实现。

49.从键盘输入两个字符串a和b,要求不用strcat把b中的前五个字符连接到a中,如果b的长度小于5,则把b的所有元素都连接到a中。试编程。 50.以下程序的要完成的任务是输出图形: * ***

***** ******* ***** *** *

请完成填空。 Void a(int i) {int j,k;

for(j=0;j<=7-i;j++)

printf(\ \; for(k=0;k<______;k++) printf(\printf(\}

main() {int j;

for(j=0;j<3;j++) _____________; for(j=3;j>=0;j--) ______________; }

C语言试题库(第9章) 一、 选择题

1、宏定义#define PI 31.14159中,宏名PI代替______________。 A、单精度 B、双精度 C、常量 D、字符串 2、设有以下宏定义:#define N 3

#define Y(n) ((N+1)*n)

执行语句z=2*(N+Y(5+1));后,z的值为_____________。

A、出错 B、42 C、48 D、54 3、以下说法正确的是_____________。 A、#define和printf都是C语句

B、#define 是C语句,而printf不是 C、printf是C语句,但#define不是 D、#define 和printf都不是C语句

4、宏定义的宏展开是在__________阶段完成的。 A、第一遍编译 B、第二遍编译 C、程序执行 D、预编译 5、编译预处理命令以___________结尾。

A、 ; B、 . C、 \\ D、回车

二、 填空题

1、程序中有定义:#define S(r) r/r int a=4,b=3,area;

则表达式area=S(a+b)的值为_______________。 2、若有以下宏定义:#define STR \ #define A 97 已知字符a的ASCII码值为97,则语句printf(STR,A,A+2);的输出结果为______。 3、以下程序的输出结果是_______________。 #define M(x,y,z) x*y+z main()

{int a=1,b=2,c=3;

printf(\

4、下列程序执行后的输出结果是________________。 #define MA(x) x*(x-1) mian()

{int a=1,b=2;

pirntf(\

5、C语言中,宏定义有效范围从定义处开始,到本源程序结束处中止。但可以用__________来提前解除宏定义的作用。 指针试题 一、 选择题 1、有以下程序 void fun(char *a, char *b) { a=b; (*a)++; } main()

{ char c1='A',c2='a',*p1,*p2; p1=&c1; p2=&c2; fun(p1,p2); printf(\}

程序运行后的输出结果是________

A)Ab B)aa C)Aa D)Bb 2、有以下程序

#include main()

{ printf(\

程序运行后的输出结果是_______

A)0 B)1 C)-1 D)NULL没定义,出错 3、下列选项中正确的语句组是________ A)char s[8]; s={\ B)char *s; s={\C)char s[8]; s=\ D)char *s; s=\ 4、已定义以下函数 fun(int *p) { return *p; }

该函数的返回值是________

A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值

5、若有定义:int *p[3];,则以下叙述中正确的是________ A)定义了一个基类型为int的指针变量p,该变量具有三个指针

B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C)定义了一个名为*p的整型数组,该数组含有三个int类型元素

D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 6、以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址

#include #include char *scmp(char *s1, char *s2) { if(strcmp(s1,s2)<0) return(s1);

else return(s2); }

main()

{ int i; char string[20], str[3][20]; for(i=0;i<3;i++) gets(str[i]);

strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2])); printf(\}

若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为_____ A)abcd B)abba C)abc D)abca 7、有以下程序段 main()

{ int a=5, *b, **c; c=&b; b=&a; ...... }

程序在执行了c=&b;b=&a;语句后,表达式:**c的值是_________

A)变量a的地址 B)变量b中的值 C)变量a中的值 D)变量b的地址 8、有以下程序 #include main()

{ char str[ ][20]={\printf(\}

程序运行后的输出结果是_______ A)0 B)5 C)7 D)20 9、已定义以下函数 fun(char *p2, char *p1)

{ while((*p2=*p1)!='\\0'){ p1++;p2++; } }

函数的功能是 ___________

A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较

D)检查p1和p2两个指针所指字符串中是否有'\\0' 10、有以下程序 main()

{ int a[3][3],*p,i; p=&a[0][0];

for(i=0;i<9;i++) p[i]=i+1; printf(\}

程序运行后的输出结果是___________ A)3 B)6 C)9 D)2

11、有以下程序_______ main()

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&*(p+i)%2) {k=k+*(p+i); i++;} printf(\}

执行后输出的结果是

A) 58 B) 56 C) 45 D) 24 12、有以下程序 main()

{ char a,b,c,*d; a='\\'; b='\\xbc';

c='\\0xab'; d=\

printf(\}

编译时出现错误,以下叙述中正确的是 A) 程序中只有a='\\';语句不正确 B) b='\\xbc';语句不正确

C) d=\语句不正确

D) a='\\';和 c='\\0xab';语句都不正确 执行后输出的结果是_______。

13、若有如下定义char a[],*p=a,则对a数组元素的正确引用是________。 A)*&a[5] B)a+2 C)*(p+5) D)*(a+2) 14、有以下程序 int *f(int *x,int *y) { if(*x<*y) return x; else return y; }

main()

{ int a=7,b=8,*p,*q,*r; p=&a; q=&b; r=f(p,q);

printf(\}

执行后输出结果是________

A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8

15、有以下程序 main()

{ char *s[]={\p=s[1];

printf(\}

执行后输出结果是_______

A) n,two B) t,one C) w,one D) o,two 16、有以下程序 main()

{ int x[8]={8,7,6,5,0,0}, *s; s=x+3;

printf(\}

执行后输出结果是________ A) 随机值 B) 0 C) 5 D) 6

17、 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10

void arrin(int x[N]) { int i=0;

while(i

d=\s1=\main=\char=\str=\xyz=\while=\ps=\for=\执行后输出结果是_______

A) yz<回车>xyz B) z<回车>yz

C) z<回车>yz<回车>xyz D) x<回车>xy<回车>xyz 21、 有以下程序 main()

{int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i; pa=a;

for(i=0;i<3;i++)

if(i<2) pa[1][i]=pa[1][i]-1; else pa[1][i]=1;

printf(\}

执行后输出结果是_______

A) 7 B) 6 C) 8 D) 无确定值 22、 有以下程序

void fun(int *a,int i,int j) { int t;

if (i

main()

{ char s[]=\while(*p)

{ *p=cchar(*p); p++; }

printf(\}

A) abc+ABC=DEFdef B) abc+abc=defdef

C) abcaABCDEFdef D) abcabcdefdef 32、以下程序段的输出结果是________ char s[]=\printf (\

A) 9 B) 12 C) 13 D) 14

33、以下程序调用findmax函数返回数组中的最大值。 findmax(int *a,int n) { int *p,*s;

for(p=a,s=a; p-a

x=\printf=\a=\p=\ B) *p>*s C) a[p]>a[s] D) p-a>p-s

34、以下程序的输出结果是________ main()

{ char cf[3][5]={\printf(\}

A) \ B) \ C) \ D) \

35、以下不能正确进行字符串赋初值的语句是________ A) char str[5]=\ B) char str[]=\

C) char *str=\ D) char str[5]={'g','o','o','d'};

36、以下程序的输出结果是_________ f(int *b , int m, int n) { int i,s=0;

for(i=m;i #include main()

{ char b1[8]=\while (--pb>=b1) strcpy(b2,pb); printf(\}

A) 8 B) 3 C) 1 D) 7

39、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是___D___。 A) p=q; B) *p=*q; C) n=*q; D) p=n; 40、有以下程序 void fun(char *c,intd) {*c=*c+1;d=d+1; printf(\ }

main()

{char a='A',b='a';

fun(&b,a); printf(\ }

程序运行后的输出结果是___D___。

A) B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b

41、以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序 void sort(int a[],int n) {int i,j,t;

for(i=0;i

{char *p=\ printf(\ }

程序运行后的输出结果是______。 A) 12 B) 15 C) 6 D) 5

46、有以下程序 #include main(int argc,char *argv[]) {int i,len=0;

for(i=1;i

A) 22 B) 17 C) 12 D) 9 47、有以下程序 int fa(int x) {return x*x; } int fb(int x) {return x*x*x; }

int f(int (*f1)(),int (*f2)(),int x) {return f2(x)-f1(x); } main() {int i;

i=f(fa,fb,2); printf(\ }

程序运行后的输出结果是______。 A) -4 B) 1 C) 4 D) 8 48、有以下程序 void ss(char *s,char t) {while(*s)

{if(*s==t) *s=t-'a'+'A'; s++; } }

main()

{char str1[100]=\ ss(str1, C); printf(\ }

程序运行后的输出结果是______。 A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd

49、有以下程序 #include main()

{char *p,*q;

p=(char *)malloc(sizeof(char)*20); q=p; scanf(\ }

若从键盘输入:abc def<回车>,则输出结果是______。 A) def def B) abc def C) abc d D) d d

50、以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。 #include void f(char (*p) [10], int n) { char t[20]; int i,j;

for(i=0;i move(char *str, int n) { char temp; int i; temp=str[n-1];

for(i=n-1;i>0;i--) str[i]=str[i-1]; str[0]=temp; }

main()

{ char s[50]; int n, i, z; scanf(\z=strlen(s);

for(i=1; i<=n; i++) move(s, z); printf(\

}

3、有以下程序,若输入的字符串是:abc123edf456gh,则执行程序后输出:【 】。 #include #include main()

{ char s[80], d[80]; int i,j; gets(s);

for(i=j=0;*(s+i)!='\\0';i++)

if(*(s+i)>='0' && *(s+i)<='9' ) { *(d+j)= *(s+i); j++; } *(d+j)='\\0'; puts(d); }

4、若有以下程序 main()

{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14} ,{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0;

for(i=0;i<4;i++) { for(j=0;j<4;j++)

{ if(*(*(a+i)+j)<0) continue; if(*(*(a+i)+j ==0) break; s+=*(*(a+i)+j; ) )

printf(\}

执行后输出结果是【 】。

5、 以下函数的功能是删除字符串s中的所有数字字符。请填空。 viod dele(char *s) { int n=0,i;

for(i=0;s[i];i++) if(【 】) s[n++]=s[i];

s[n]=【 】; }

6、 设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。 main()

{ int findbig(int,int,int); int (*f)(),x,y,z,big; f=【 】;

scanf(\big=(*f)(x,y,z);

printf(\}

7、以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。 void fun(int *x,int y) { ...... } main()

{ int a=10,b=20;

【 】 ; /定义变p */ p=fun; p(&a,&b); ...... }

8、 下列程序的输出结果是 【 】 。 void fun(int *n) { while( (*n)--); printf(\}

main() { int a=100; fun(&a); }

9、 以下程序的输出结果是 【 】 。 main()

{ int arr[ ]={30,25,20,15,10,5}, *p=arr; p++;

printf(\}

10、 以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。 #define N 3 #define M 4

void LineMax(int (*x)[M]) { int i,j,p;

for(i=0; i

return 【 】; }

main()

{int a[N][M]={9,11,23,6,1,15,9,17,20},max, n; max=select(a,&n);

printf(\}

19、 mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str) { int i;

for(i=0; *(str+i)!=【 】;i++); return(【 】); }

20、 下面程序的运行结果是:【 】。 void swap(int *a,int * B) {int *t;

t=a;a=b;b=t; }

main()

{int x=3,y=5,*p=&x,*q=&y; swap(p,q);

printf(\ }

21、 设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。 scanf(\【 】); printf(\【 】);

22、fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。 #include #define N 100 int fun(int(*a)[N])

{int row,col,max,min;

for(row=0;row

{while(*s&&*t&&*s==【 】) {s++;t++; }

return 【 】; }

24、下面程序段的运行结果是【 】。 char a[]=\ int i=0;

p=a;

while(*p)

{if(i%2==0) * p='#'; p++; i++; } }

puts(a);

25、下面程序段的运行结果是:【 】。 char a[]=\int s=0;

for(p=a;*p!='\\0';p++) s=10*s+*p-'0'; printf(\

26、若有定义:int a[3][5],i,j;(且0<=i<3,0<=j<5),则a[i][j]的地址可用以下几种形式表示:

(1)&a[i][j] (2)a[i]+j (3)【 】+j (4)&a[0][0]+【 】 (5) a[0]+【 】 27、若有说明:char *language[ ]={\则language[2]的值是:【 】。

28、若有定义:int (*p)[4],则p是一个指向【 】的指针。 29、若定义char *string=\,则*(string+2)的值为:【 】。 30、下面程序段中,for循环的执行次数为:【 】。 char *s=\

for(;*s!='\\0';s++) printf(\

31、下面程序段的运行结果是:【 】 char str[]=\ printf(\

32、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[1];则++(*p)的值是【 】。 33、若有定义:int a[2][3]={2,4,6,8,10,12};则*(a[1]+2)的值是【 】,*(&a[0][0]+5)的值是【 】。

34、下面程序的运行结果是:【 】 #include \ fun(char *s) {char *p=s; while(*p) p++; return(p-s);} main()

{char *a=\ int i; i=fun(a);

printf('%d\ }

35、下面程序的功能是比较两个字符串是否相等,若相等则返回1,否则返回0。请填空。

#include \

fun(char *s,char *t) {int i=0;

while(【 】&&【 】) i++; if (s[i]=='\\0'&&t[i]=='\\0') return 1; else return 0; }

main()

{char a[20], b[20]; int i;

gets(a); gets(b); i=fun(a,b); printf(\}

三、编程题(采用指针实现)

1、 输入3个字符串,按小到大的顺序排列并输出。

2、 输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符有多少个?

3、 编写程序,将任意一个字符串从第一个字符开始间隔地输出该串。例如:字符串是abcdef,那么输出ace。

4、 写一个函数,求一个字符串的长度(不能调用strlen函数)。

5、 将一个长度不超过4的数字字符串转换成一个整数。如字符串是\,则转换的整数是3248。

1

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

Top