C语言期末考试试题及详细答案

更新时间:2024-04-01 22:52:18 阅读: 评论:0

2024年4月1日发(作者:仰廷宣)

选择练习题

1、C语言中最简单的数据类型包括( B )。

A、整型,实型,逻辑型

B、整型,实型,字符型

D、整型,实型,逻辑型,字符型 C、整型,字符型,逻辑型

2、C语言中,运算对象必须是整型数的运算符是(A )。

A、% B、/ C、%和/ D、*

3、为表示关系x<y<z,应使用C语言表达式( A )。

A、(x<y)&&(y<z) B、(x<y)AND(y<z)

C、(x<y<z) D、(x<y) &(y<z)

4、C语言程序的基本单位是( C )。

A、程序行 B、语句 C、函数 D、字符

5、C语言的程序一行写不下时,可以( D )。

A、用逗号换行 B、用分号换行

C、用回车符换行 D、在任意一空格处换行

6、下述标识符中,( C )是合法的用户标识符。

A、A&B B、void C、_student D、ab*

标识符由字母,数字和下划线组成且第一个字符必须为字母或下划线

7、在C语言中,字符型数据在内存中以( B )形式存放。

A、补码 B、ASCII码 C、反码 D、原码

8、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为( B )。

A、auto B、extern C、static D、Register

auto自动变量

9、以下关于switch语句和break语句的描述中,只有(B )是正确的。

register寄存器变量

extern 外部变量

A、在switch语句中必须使用break语句

static静态变量

B、在switch语句中,可以根据需要使用或不使用break语句

C、break语句只能用于switch语句中

D、break语句是switch语句的一部分

10、C语言规定:调用一个函数时,实参变量和形参变量之间的数据传递是(B )。

A、地址传递 B、值传递

C、由实参传给形参,并由形参传回给实参 D、由用户指定传递方式

11、下述C语言转义符中( D )是非法的。

A、'b' B、'037' C、'0xf ' D、'''

12、为了要计算s=10!(10的阶乘),则以下对s的定义正确的是(

A、int s B、unsigned s C、short s D、long s

D )。

13、判断变量ch中的字符是否为大写字母,最简单的正确表达式是( A )。

A、ch>='A'&&ch<='z' B、A<=ch<=Z

C、'A'<=ch<='z' D、ch>=A&&ch<=z

14、在C语言中,能表示无符号长整型常数的是(D )。

A、OL B、4962710U C、912374u D、2UL

15、能正确表示C语言的字符常量的是( C )。

A、'0x41' B、''A'' C、'0' D、''0''

16、C语言中逻辑表达式的值为( A )。

A、0或1 B、非零值或零值 C、true或fal D、'true'或'fal'

17、C语言提供的基本数据类型关键字是( C )。

A、integer B、FLOAT C、unsigned D、Double

18、若定义语句:int b[ ]={1,2,3,4,5},*P=b;则表达式*p++的值是( A )。

A、1 B、2 C、b[0]的地址 D、b[1]的地址

19、在下列选项中,不正确的表达式是( C )。

A、a>b B、c--, ++b, a+=1 C、a=c+b>n-m=k D、p++

20、若有以下定义:

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

char cl='b',c2='2';

则数值不为2的表达式是( D )。

A、a[1] B、'd'-cl C、a['3'-c2] D、c2-0

25、下述对C语言字符数组的描述中错误的是( C )。

A、字符数组可以存放字符串

B、字符数组中的字符串可以整体输入、输出

C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D、不可以用关系运算符对字符组中的字符串进行比较

27、以下程序的输出结果是( A )。

main( )

{ int i=010, j=10, k=ox10;

printf(''%d,%d,%dn'',i,j,k);

A、8,10,16 B、8,10,10 C、10,10,10 D、10,10,16

28、以下程序的输出结果是( B )。

#include<stdio.h>

main( )

{printf(''%dn'',NULL);}

A、不确定的值(因变量无定义) B、0 C、-1 D、1

29、以下程序的输出结果是( B )。

main( )

{ char c1='6',c2='0';

printf(''%d,%d,%dn'',c1,c2,c1-c2);

A、因输出格式不合法,输出出错信息 B、54,48,6

C、6.0,7 D、6,0,6

32、下述对C语言字符数组的描述中错误的是( C )。

A、字符数组可以存放字符串

B、字符数组中的字符串可以整体输入、输出

C、可以在赋值语句中通过赋值运算符''=''对字符数组整体赋值

D、不可以用关系运算符对字符组中的字符串进行比较

33、Turbo C中,对于以下程序( A )。

main( )

{ int x,y;

y=creat(&x);

printf(''%d n'', y);

creat(int a)

{return a++;}

A、编译时会给出错信息

B、顺利进行编译、连接、执行;不报任何错误

C、顺利通过编译、连接、但不能执行

D、顺利通过编译,但连接出错

34、设有如下定义:

int x=10, y=4,z;

则语句:

printf(''%dn'', z=(x%y, x/y));

的输出结果是( C )。

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

35、下述程序段的输出结果是( D )。

main( )

{ int x=10, y=10;

printf(''%d, %dn'', x++, ++y);

A、10,10 B、11,11 C、11,10 D、10,11

36、定义如下变量和数组:

int j;

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

则下面语句的输出结果是( C )。

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

printf(''%d'', x[i][2-i]);

A、159 B、147 C、357 D、369

37、若要求在if后一对圆括号中表示a不等于0的关系,则不能正确表示这一关系的表达式为( C )。

A、a<>0 B、!a C、a=0 D、a

38、若m,y,z均为int型变量,则执行下面语句后m值是(A )。

m=1;x=2;y=3;z=4;

m=(m<x)?m:x;

m=(m<y)?m:y;

m=(m<z) ?m:z;

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

39、若有定义:int a=7;float x=2.5,y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值是( A )。

A、2.500000 B、2.750000 C、3.500000 D、0.000000

40、如下说法不正确的是( C )。

A、c>a+b等效于c>(a+b)

B、若a,b均为真,则a||b为真

C、表达式'c'&&'d'的值为0

D、逻辑运算符!比逻辑运算符||的优先级高

41、putchar()函数可以向终端输出一个( B )。

A、整型变量表达式值 B、字符

C、字符串 D、实型变量值

42、表达式18/4*sqrt(4.0)/8值的数据类型为( C )。

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

43、若已定义a为整型变量:

a=-2L;

printf(''%dn'',a);

则以上语句( B )。

A、赋值不合法 B、输出值为-2 C、输出为不确定值 D、输出值为2

45、若int类型数据占两个字节,则以下语句的输出为( D )。

int k= -1;

printf(''%d,%un'',k,k);

A、-1,-1 B、-1,32767 C、-1,32768 D、-1,65535

46、已知字母a的ASCII码十进制值为97,则执行以下语句后的输出为( C )。yhg

char a='a';

a--;

printf(''%d,%cn'',a+'2'-'0',a+'3'-'0');

A、b,c B、a—运算不合法,故有语法错

C、98,c D、格式描述和输出项不匹配,输出无定值

47、下面语句中( B )是C语言的正确赋值语句。

A、a=1,b=2 B、I++; C、a=b=5 D、y=int(x);

48、设有以下说明语句

struct stu

{ int a;

float b;

}stutype;

则下面的叙述不正确的是( C )。

A、struct是结构体类型的关键字 B、struct stu是用户定义的结构体类型

C、stutype是用户定义的结构体类型名 D、a和b都是结构体成员名

49、能正确表示:当x的取值范围在[1,10]或[100,110]内为真,否则为假的表达式是( C )。

A中声明变量并初始化时:int a=1,b=5;但是,只赋值时是不能这样写的,应该写成a=1;b=2;C无分号,不是完整的语句,D中x没有定义,如果是 int x=3;int y; y=int(x);这样是对的

A、(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)

B、(x>=1)||(x<=10)||(x>=100)||(x<=110)

C、(x>=1)&&(x<=10)||(x>=100)&&(x<=110)

D、(x>=1)||(x<=10)&&(x>=100)&&(x<=110)

50、设n为整型变量,则循环语句for(n=10;n>0;n--)的循环次数为( A )。

A、10 B、9 C、11 D、12

51、在对文件进行操作时,若要求文件的位置指针回到文件的开头,则应当调用的库函数是( D )。

A、fopen() B、fek() C、fclo() D、rewind()

52、下列哪个数组定义是正确的( D )。

A、int a[5.5]; B、INT a[10]; C、int a[n]; D、int

a[3+2];

53、一个变量的指针就是( A )。

A、变量的地址 B、变量的值 C、变量的名称 D、变量的类型

55、下列正确的说法是(C )。

A、宏替换是在程序运行时进行的

B、函数调用是在程序编译时进行的

C、宏替换时,如果实参是表达式,应先求表达式的值,再替换

D、函数调用时,如果实参是表达式,应先求表达式的值,再替换

56、对于数学式x/2a,下面正确的C语言表达式是( D )。

A、sqr(x)/2a B、sqr(x)/2*a C、sqrt(x)/(2*a) D、sqrt(x)/2*a

57、若int类型数据占2字节,则以下语句的输出为( D )。

int k=32768;

printf(''%d,%un'',k,k);

A、-1,65535 B、-1,32767 C、-1,-1, D、-32768,32768

59、下面程序中( B )有错误。

1)#include<stdio.h>

2)main ( )

3){

4)int a[3]={0,0,0};

5)int i;

6)for(i=0;i<3;i++﹚scanf(''%D'',&a[i]);

7)for(i=1;i<3;i++﹚a[0]=a[0]+a[i];

8)printf(''%dn'',a[0];}

A、第4行 B、第6行 C、第7行 D、第8行

60、下面程序的运行结果( C )。

main( )

{ unsigned a=3,b=10;5

printf(''%dn''a<<2|b>>1=;

}

A、3 B、10 C、13 D、14

61、已定义x为float型变量。

x=213.82631;

%表示最大场宽m,小数位为n位,整数位则为m-n-1 Printf(''%-4.2fn'',x);

位,够m位右对齐。%-可以控制输出左对齐

则以上程序( A )。

A、输出格式描述符的域宽不够,不能输出 B、输出为213.83

C、输出为213.82 D、输出为-213.82

62、设已定义整型变量K,则下面的程序输出为( D )。

k=017;s=111;

printf(''%d'',++k);

printf(''%xn'',s++);

A、15 6f B、16 70 C、15 71 D、16 6f

63、不能正确表示a*b/c*d的C语言表达式是( C )。

A、a*b/c*d B、a/(c*d)*b C、a*b/c/d D、a*b/(c*d)

64、下列( C )表达式不满足;当x的值为偶数时值为“真”,为奇数时值为“假”。

A、x%2= =0 B、!x%2!=0 C、x/2*2-x= =0 D、!(x%2)

65、设已定义k为int型变量,则下面while循环执行( C )次。

k=10;

while(k=0)k=-1;

A、执行10次 B、无限循环 C、一次也不执行 D、执行一次

67、用高级语言编写的程序称之为( A )。

A、源程序 B、目标程序 C、汇编程序 D、命令程序

69、有以下程序的输出结果为( B )。

main( )

{ char a=0x95,b,c;

b=(a&0xf)<<4;

c=(a&0xf0)>>4;

a=b|c;

printf(''%xn'',a);

}

A、24 B、59 C、34 D、56

70、下述程序段的输出结果是( A )。

int a=3;b=4;

int c=a^b>>3;

printf(''%d'',c)

A、3 B、4 C、5 D、6

73、设int型变量在内存中占用两个字节存储单元,定义如下结构体:

struct student

{ char name[10];

char x;

int age;

struct

{ int year;

int month;

int day;

}birth;

}stul;

则表达式sizeof(stul)的值是( )。

A、5 B、8 C、2 D、26

75、下述程序段的运行结果是( B )。

#include

main( )

{ int m=7,n=4;

float a=38.4,b=0.4,x;

x=m/2+n*a/b+1/2;

printf(''%fn'',x);

}

A、22 B、387.000000 C、27 D、26

76、下面程序的运行结果是( C )。

main( )

{ int cl=2,c2=0;

while(!c2- -)

printf(''%d%d'',cl- -,c2);

}

A、陷入死循环 B、不输出任何内容

C、输出2 -1 D、输出20

77、下面程序的运行结果是( B )。

int m=4,n=6;

max(int x,int y)

{ int max;

max=x>y?x:y;

return(max);

}

main( )

{ int m=10;

printf(''%dn'',max(m,n));

}

A、4 B、10 C、6 D、5

78、下面程序的运行结果是( B )。

fun(int p)

{ int k=1;

static t=2;

k=k+1;

t=t+1;

return(p*k*t);

}

main( )

{ int x=4;

fun(x);

printf(''%dn'',fun(x));

}

A、4 B、32 C、30 D、16

79、阅读下面的程序:

main( )

{ char ch;

scanf(''%c'',&ch);

if(ch>='a'&& ch<='z')

ch=ch-32;

printf(''%c'',ch);

}

若输入字符为:e,则程序运行结果为( A )。

A、E B、A C、e D、z

80、下面程序的运行结果是( B )。

main( )

{ static int a[3][3]={{3,2,1},(4,5,6),{-2,9,1}};

int i,j,sum=0;

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

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

{ if(i= =j)

sum=sum+a[iJ[j]];

}

printf(''sum=%d'',sum);

}

A、sum=10 B、sum=9 C、9 D、10

84、下述程序的运行结果是( A )。

#include

void fun(int x)

{

putchar('0'+(x% 10));

fun(x/10);

}

main( )

{

printf(''n'');

fun(1234);

}

A、4321 B、321 C、21 D、1

86、设已定义i和k为int类型变量,则以下for循环语句( B )。

for(i=0,k=-1;;i++,k++)

printf(''* * * *n'');

A、判断循环结束的条件不合法 B、是无限循环

C、循环一次也不执行 D、循环只执行一次

87、下列程序段选择项中,使i的运行结果为4的程序段是( D )。

A、int i=0,j=0; B、int i=1,j=70;

(i=3,(j++)+i); j=i=((i=3) *2);

C、int i=0,j=1; D、int i=1,j=1;

(j= =1)?(i=1):(i=3); i+=j+=2;

89、阅读以下程序(最左边是附加的行号)。

1)#include

2)main( )

3){ float s[5];

4) int i,k=0;

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

6) scanf(''%d'',s+i);

7) for(i=0;i<5;i++)

8) k=s[i];

9) printf(''n%f'',(float)k);

10)}

此段程序( A )。

A、没有错误 B、第4行错误 C、第6行错误 D、第9行错误

90、下列程序中有三个是完全相同的功能,只有( B )所完成的功能与其他程序不同。

A、s=0; B、s=0;

i=0; i=1;

while(i<=100) while(i++<100)

s+=i++; s+=i;

C、s=0; D、s=0;

i=0; i=0;

while(i<=100) while(++i<=100)

s+=++i; s+=i;

92、执行下面的程序后,a的值为( D )。

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、 D、10

93、下面的程序中( C )有错误。

1)#include

2)main( )

3){

4) float a[3]={0.0};

5) int i;

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

7) scanf(''%D'',&a[i]);

8) for(i=1;i<3;i++)a[0]=a[0]+a[i];

9) printf(''%fn'',a[0]);

}

A、第4行 B、第6行 C、第7行 D、第8行

94、以下程序的输出结果是( C )。

#include

main( )

{ int i;

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

{ if(i%2)

printf(''+'')

el

continue;

printf(''-'')

}

printf(''$n'');

}

A、+-+-+-$ B、-+-+-+$ C、+-+-$ D、-+-+$

95、下述程序段的输出结果是( C )。

int x=3;

do

{ printf(''%d'',x-=2);

}while(!(--x));

A、1 B、30 C、1-2 D、死循环

96、定义如下变量:

int n=10;

则下列循环的输出结果是( A )。

while(n>7)

{ n--;

printf(''%d'',n);

}

A、1098 B、987 C、10987 D、9876

100、两次运行下面的程序,如果键盘上分别输入6和4,则输出结果是( A

main( )

{ int x;

scanf(''%d'',&x);

。 )

int(x++>5)

printf(''%dn'',x--);

}

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

101、运行下段程序的结果是( D )。

#include

main( )

{ int x;

for(x=1;x<=100;x++)

if(++x%= =0)

if(++x%3= =0)

if(++x%5= =0)

printf(''%d'',x);

}

A、31,61,91 B、30,60,90

C、不输出任何内容 D、29,59,89

102、运行下述程序段后,i值为4的是( B )。

A、int i=1,j=0; B、inti=1,j=1;

i=j=((i=3)++); i+=i+=2;

C、int i= =0,j=0; D、int i=0,j=1;

(i=2,i+(j=2)); (j= =1)?i+=3:i=2;

104、以下程序的输出结果是( D )。

main()

{ int a=-1,b=4,k;

k=(++a,0)&&!(b--<=0);

printf(''%d,%d,%dn'',k,a,b);

}

A、1,0,4 B、1,0,3 C、0,0,3 D、0,0,4

105、以下程序的输出结果是( A )。

main( )

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

if(x=y+z)

printf(''* * * *'');

el

printf(''# # # #'');

}

A、# # # # B、* * * * C、1 D、4

106、以下程序的输出结果是( A )。

int m=13;

int fun2(int x, int y)

{ int m=3;

return(x*y-m);

}

main( )

{ int a=7,b=5;

printf(''%dn'',fun2(a,b)/m);

}

A、2 B、3 C、7 D、5

112、阅读程序:

#include

main( )

{ int m,n,w;

scanf(''%d,%d'',&m,&n);

while(n)

{ w=m%n;

m=n;

n=w;

}

printf(''%d'',m);

}

如果输入10,6,则输出结果是( D )。

A、60 B、120 C、2

113、下列程序执行后输出的结果是( A )。

#include

f(int a)

D、10

{ int b=0;

static c=2;

a=c++, b++;

return(a+b);

}

main( )

{ int a=2,i,k;

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

k=f(a++);

printf(''%dn'',k);

}

A、3 B、0 C、4 D、5

115、下列程序的运行结果是( B )。

main( )

{ static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int i,j, sum=0;

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

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

if(j>i)

sum+=a[i][j];

printf(''sum=%dn'',sum);

}

A、40 B、36 C、24 D、30

120、阅读下列程序:

main( )

{ int n[3],i,j,k;

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

n[i]=0;

k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

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

printf(''%d'',n[i]);

printf(''n'');

}

运行该程序,其输出结果是( B )。

A、230 B、330 C、123 D、321

123、下述程序段的运行结果是( B )。

main( )

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

int b[3][2],i,j;

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

{ for(j=0;j<3;j++)

{ b[i][j]=a[j][i]+a[i][j];

printf(''%5d'',b[i][j]);

}

printf(''n'');

}

}

A、2 4 7 B、2 6 10 C、18 14 10 D、18 2 3

2 10 8 6 10 14 14 10 6 4 10 2

3 6 18 10 14 18 10 6 2 7 4 2

124、如果程序中有如下的说明和定义:

struct s

{ int x,y;}

struct s x,y;

则会发生的情况是( A )。

A、编译出错

B、能顺利编译和链接,但不能执行

C、程序能顺利通过编译,但是链接时会出错

D、程序能顺利编译,链接,执行

127、对C语言的文件存取方式的论述中,正确的是文件( C )。

A、只能顺序存取

B、只能随机存取(也称直接存取)

C、可以是顺序存取,也可以是随机存取

D、只能从文件的开头存取

填空练习题

1、有以下定义:int x; float y; 执行scanf("%3d%f",&x,&y);时,如果输入的数据为: 12345 678,则x的值为 123 ,y的值为 这个与12345后有没有空格有关,到时候看着办吧(有空格就是45.000000) 。

2、有定义语句:int x,y,z;,执行x=(y=4,z=8,z=16) 后,x的值为 16 。

3、计算表达式b=25/3%3后,b的值为 2 。

4、设有定义语句int x=1,y=0;,则表达式x-->(y+x)?10:12>y++?'A': 'Z'的值是:

65 。

5、请写出以下语句的输出结果 9 。

printf("%d",strlen("t"065xffabn"));

7、C语言规定:标识符只能由 字母 、 数字 、 下划线 三种字符组成。

8、有定义语句:int x=5,y=1;表达式x&y==y? x|y:x^y的值为 5 。

9、下述程序段的循环次数是 0 次,输出结果是 y=1,x=0 。

int x=0,y=0;

do

{ y++;

x*=x;

}while(x>0&&y>5)

printf("y=%d,x=%d",y,x);

10、若m,y,z,均为int型变量,则执行下面语句后m值是1 。

m=1;x=2;y=3;z=4;

m=(m

m=(m

m=(m

11、下述程序段的运行结果是 5 。

int x,y;

x=17;

y=26;

printf("%d",y/=(x%=6));

12、下列循环语句执行的循环次数是: 无数次 。

for(a=1,b=1;a<4&&b!=4;a++)//循环体内b的值不变。

13、下面程序的输出是 。

#include

main()

{ printf("%dn",strlen("nabcc",",0410xftn"));}

14、下述程序段的输出结果是 3 。

int a=3;b=4;

int c=a^b>>3;

printf("%d",c);

17、下述程序段的输出结果是 1245056 。

#include

void fun(int*x)

{

printf("%d",++x);

}

main( )

{ int y=20;

fun (&y);

}

20、下述程序段的运行结果是 15 。

#include

main( )

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

int s=0,i;

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

s+=(*(a+i))[i];

printf("%d",s);

}

21、下述程序的输出结果是 18 。

#include

main()

{ int x=8,y=9;

int k;

k=(x++)+(++y);

printf("%d",k);

}

22、下述程序的输出结果是 6 。

#include

int fun(int x)

{ static int a=3;

a+=x;

return a;

}

main( )

{ int k=2,m=1,n;

n=fun (k);

n=fun (m)

printf("%d",n);

}

23、用“冒泡法”对输入的10个字符按由小到大顺序排序,请填空。

#include

#include

#define n 10

main()

{ int i,j;

char str[11];

scanf("%s",str);

char t;

for(j=1;j

for(i=0;(i

if( str[i]>str[i+1] )

{ t=str[i];

str[i]=str[I+1];

str[i+1]=t;

}

for(i=0;i

printf("%c",str[i]);

}

24、把字符数组中的字符串按反序存放,例如:字符串"ABCD"的输出结果应为"DCBA",请填空。

#include

#include

#include

main()

{

char a[100],t;

printr(“输入字符串:n”);

scanf("%s",a);

int i,j;

for(i=0,j=strlen(a);i

{ t=a[i];

a[i]=a[j-1];

a[j-1]=t ;

}

printf(“转换后的字符串是:%sn”,a);

}

27、下面程序的执行结果是 2,2 。

#include

main( )

{ int array[ ][3]={{10,20,30},{28,15.-10},{-50,10,60}};

int i,j,row=0,col=0;

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

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

if(array[i][j]>array[row][col])

{ row=i;col=j;}

printf("%d,%d",row,col);

}

28、求出1000以内能被7或11整除,但不能同时被7和11整除的数,存放到数组xx中。请填空。

main( )

{

int i,j=0;

int xx[1000];

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

if(((i%7==0)||(i%11==0))&&(!((i%7==0)&&(i%11==0))))

xx[j++]=I;

printf("%d",j);

}

29、下面程序的执行结果为: 2.000000 。

main( )

{ float x,y;

x=1/2;

y=2;

printf("%fn",x+y);

}

32、程序的功能是求两个整数的最大公约数,请填空。

main()

{ int a=12,b=8,t;

while( b>1 )

{ t=a%b;

a=b;

b=t;

}

printf("%3d",a);

}

35、求下列算式1+1/2+1/3+……+1/100的值,请填空。

main( )

{ int i;

float sum=0;

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

sum+ =1/i ;

printf("%fn",sum);

}

36、将输入的百分制的分数转换为相应的等级并输出,100~90分则为A;89~80分则为B;79~70分则为C;69~60分则为D;小于60分为E,请填空。

main( )

{ int score,i;

scanf("%d",&scorer);

i=score/10;

switch(i)

{ ca 10:

ca 9:printf("A");bresk;

ca 8:printf("B");break;

ca 7:printf("C");break;

ca 6:printf("D");break;

default : printf("E");

}

}

38、下面程序是在两位数中统计所有能被3整除的数的个数。

main()

{ int i,num=0;

for(i=10;i<100;i++)

if( i%3=0 )

num++;

printf("nThere are%d numbers!",num);

}

42、以下程序段的输出结果是 1 -2 。

main()

{ int x=3;

do

{ printf("%3d",x-=2);

}while(!(--x));

}

43、以下程序的输出结果是 004 。

main()

{ int a=-1,b=4,k;

k=(++a<0)&&!(b--<=0);

printf("%d%d%dn",k,a,b);

}

44、下列程序执行后输出的结果是 4 。

#include

f(int a)

{ int b=0;

static c=3;

a=c+ +,b++;

return(a);

}

main( )

{ int a=2,i,k;

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

k=f(a++);

printf("%dn",k);

}

46、阅读程序,请写出结果:

main( )

{ int x,y;

scanf("%d",&x)

y=-1;

if(x!=0)

if(x>0)y=1;

el y=0;

printf("y=%dn",y);

}

若运行该程序,输入值为:5,则输出结果为: y=1 。

47、阅读程序,请写出结果:

main( )

{ char c;

int s1=0,s2=0;

do

{swith(c=getchar())

{ ca'a':

ca'e':

ca'x':

ca'o':

ca'u':s1+=1;

default: s2+=1;

}

}while(c!='n');

printf("%d.%dn",s1,s2);

}

若输入数据为:computer,则输出结果为: 3.9 。

48、阅读程序,请写出结果:

main( )

{ int m, i, k;

scanf("%d",&m);

for(i=2;i

if(m%i= =0) break;

if(i>=m)

printf("%dn",m);

}

若输入数据为:19 ,则输出结果为: 19 。

49、下述程序的运行结果是 4321 。

#include

void fun(int x)

{ putchar('0'+(x% 10));

fun(x/10);

}

void main()

{

printf("n");

fun(1234);

}

53、求20以内3的倍数和sum1及其余数的和sum2。

main( )

{ int sum=0,sum2=0,i;

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

if( i%3=0 )

sum1+=i;

el

sum2+=i;

printf("%d,%dn",sum1,sum2);

}

55、下面函数把两字符串s1和s2连接起来。

Con(char s1[ ], char s2[ ])

{ int i=0,j=0;

while(s1[i]!='0')i++;

while( s2[j]!='0' )s1[i++]=s2[j++];

s1[i]='0';

}

57、统计文件中的字符个数。

#include

main( )

{ FILE *fp;

long num=0;

if( (fp=fopen("","r") ==NULL)

{ printf("Can’t Open Filen");

exit(0);

}

whilefgetc(fp)!=EOF)

num++;

printf("%ldn",num);

fclo(fp);

}

58、下面函数从字符数组s[ ]中删除字符c。

void del(char s[ ], char c)

{ int i,j;

for(i=j=0;s[i]!+'0';i++)

if(s[i]!=c)

s[j++]=s[i];

s[i] ='0';

}

59、下面程序用于统计一行字符串中单词的个数,单词之间用空格分隔。

Main( )

{ int i,num=0,word=0;

char str[80];

scanf("%s",str);

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

if(sir[i]==") word=0

el if(word==0)

{ word=1;

num++;

}

printf("%dn",num);

}

64、下面程序用指针p输出p所指向的数组元素的其后所有元素。

main()

{ int a[10]={6,-1,3,2,5,7,6,12,-1,-3};

int i,j,*p;

p=a+4;

for(i=0;j<=5;i++)

printf("%d", *p++ );

}

65、以下程序把一个名为的文件拷贝到一个名为的文件中。

#include

main()

{ char c;

FILE *fp1,*fp2

Fp1=fopen("","r");

Fp2=fopen("","w");

c=fgetc(fp1);

while(c!=EOF)

{ fputc(c,fp2);

c=fgetc(fp1);

}

fclo(fp1);

fclo(fp2) ;

}

67、判断某年year是否是闰年,若year能被4整除100整除或能被400整除,则是闰年,否则不是闰年。

main()

{ int year;

scanf("%d",&year);

if( year%4= =0&&year%100!=0||year%400= =0 )

printf("%d is a leap yearn",year);

el

printf("%d isn’t a leap yearn",year);

}

68、把键盘输入的一行字符串的小写字母转换成大写字母,其余字符不变,进行输出,直到遇到回车为止。

#include

main()

{ if(c>='a'&&c<='z')

c=c-32;

putchar(c);

}

putchar('n');

}

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

main()

{ float x,amax,amin;

scanf("%f",&x);

amax=x;

amin=x;

while( x>0 )

{ if(x>amax)amax==x;

if x

amin=x;

scanf("%f",&x);

}

printf("n" amax= %fn amin== % fn",amax,amin);

}

70、执行下面的程序后,a的值为 8 。

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;

}

}

74、以下程序由终端键盘输入一个文件名,然后把终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。

#include

main( )

{ FILE *fp;

char ch,fname[10];

printf("Input the name of file n");

gets(fname);

if((fp= fopen(fname,"w" )==NULL)

{ printf("Cannot open n");exit(0);}

printf("Enter date n");

while((ch= getchar())!='#')

fputc( ch ,fp);

fclo(fp);

}

本文发布于:2024-04-01 22:52:18,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1241408.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:输出   程序   结果
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图