c语言程序阅读题switch,C语言程序设计练习题 - 2012

27.下列程序段的输出结果是 。 int x=-10,y=1; if(x>=0)

if(x>0) y=0; else y=-1; printf(“%d”,y);

28.下列程序段的输出结果是 。 int k=1,sum=8; while(k<6)

{sum++;k++;} printf(“%d”,sum);

29.对于以下递归函数f,调用f(3)的返回值是 。 int f(int n)

{return(n<=0?1:f(n-1)+1);}

30.下列程序段的输出结果是 。 int c[]={1,7,12}; int *k; k=c; k++;

printf(“%d”,*k);

31.表达式(5==5==5)的值是 。

32.定义a为长度为10的字符串、同时为字符串赋初值\的语句为 。 33.定义语句char a[15]=\语句printf(\”,strcpy(a,b));的输出结果为 。

34.定义语句为char a[]=\语句printf(\输出 。

35.宏定义语句 #define f(x,y) printf(x,y)的宏调用格式是 f(\则预处理时其宏展开格式为 。

36.下列程序段的输出结果是 。 int k,a=3,b=2; k=(a==b)?0:1; printf(“%d”,k); 37. 表达式((2<<1)|2)的值是 。 38.下列程序段的输出结果是 。 #define M(x,y) (x*y) printf(“%d”,M(2,3+4));

39. 下列程序段的输出结果是 。 int n=6; switch(n)

{case 1:n=1;break; case 2:n=2;break; case 3:n=3;break; default:n=4; }

printf(“%d”,n);

9

40. 下列程序段的输出结果是 。 int k=0;

if(!(k==1)) print(“***”); else printf(“###”); 三、判断题

1. 只能用while语句构成循环。( ) 2. 不能用printf函数输出字符。( )

3. C程序中各函数之间既允许直接递归调用也允许间接递归调用。( ) 4. 在函数外部定义的变量称为全局变量。( ) 5. 宏定义的命令行可以看作是一条C语句。( )

6. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。( ) 7. C语言中以%O开头的数是八进制数。( )

8. 在程序的运行过程中,符号常量的值是可以改变的。( ) 9. 在C程序中,APH和aph代表不同的变量。( ) 10. 一个复合语句在语法上被认为是一条语句。( ) 四、程序填空题

1. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。

#include void main() {

int i;

for(i=1; ① ;i++) if( ② ) printf(\}

2. 输入x、y两个整数,按先大后小的顺序输出x、y。

#include void main( ) {

int x, y, *px, *py, ① ; scanf(\ ② ; ③ ;

if(xprintf(\}

3. 以下程序实现的是计算数列1、3、5、?、2n-1、?的前n项之和,其中n由键盘输入。请填空完善该程序。

#include \void main( ) {

long s,n,k,i;

10

scanf(\① ); k=2*n-1; ② ;

for(i=1;i<=k;i=i+2) ③ ;

printf(\}

4. 以下程序实现的是冒泡排序算法,将数组a的元素按由大到小的顺序排列。请填空完善该程序。 #include \#define N 12 void main() {

int i,j,k;

int a[N]={5,8,9,6,2,7,3,2,2,7,8,0}; printf(\排序前的序列:\ for(i=0;iprintf(\ for(i=0;ifor(j=0;jk=*(a+j);

*(a+j)= ② ; ③ =k; }

printf(\排序后的序列:\ for(i=0;iprintf(\ printf(\}

5.输入20个数,输出它们的平均值,输出其中与平均值之差的绝对值为最小的元素。 #include #include viod main( )

{float a[20],pjz=0,s,t; int i,k;

① ; /*从键盘输入数据到数组中*/ for(i=0; i<20; i++) pjz+=a[i];

② ; /*求平均值*/ s=fabs(a[0]-pjz); for(i=1;iif(fabs(a[i]-pjz)

6.下列程序读入时间数值,将其加1秒后输出,时间格式为:

11

hh:mm:ss,即时:分:秒,当小时等于24小时,置为0 。 #include

struct{int hour ,minute, second;}time; void main()

{ scanf(\ ① ); /*结构体各成员赋值*/ time.second++;

if(time.second==60) {time.minute++;time.second=0;} if(time.minute==60) {time.hour++;time.minute=0;}

if( ② ) time.hour=0; /*判断是否满24小时*/ printf(\}

7.分别输出方阵中主对角线、副对角线上的元素和sum1和sum2。 #include#define SIZE 5 main()

{int a[SIZE][SIZE],m,n,sum1,sum2; for(m=0;mscanf(“%d”,&a[m][n]);

sum1=sum2= ① ; /*赋初值*/ for(m=0;m{sum1=sum1+ ② ; /*主对角线元素求和*/ sum2=sum2+ ③ ; /*副对角线元素求和*/ }

printf(“sum1=%d sum2=%d\\n”,sum1,sum2); }

8.统计当前目录下文本文件data.txt中小写字母出现的次数。 #include void main() { FILE *fp; char ch; int count=0;

if((fp= ① (“data.txt”,”r”)==NULL); /*打开文件*/ {printf(“不能打开文件data.txt!\\n”); exit(0); }

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

if( ② ) count++; /*判断是否为小写字符*/ printf(“%d”,count); fclose(fp); }

五、阅读程序题

1. 写出下面程序的运行结果。

#include

12

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值