C语言编程题.docx

上传人:b****1 文档编号:354936 上传时间:2022-10-09 格式:DOCX 页数:9 大小:18.44KB
下载 相关 举报
C语言编程题.docx_第1页
第1页 / 共9页
C语言编程题.docx_第2页
第2页 / 共9页
C语言编程题.docx_第3页
第3页 / 共9页
C语言编程题.docx_第4页
第4页 / 共9页
C语言编程题.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

C语言编程题.docx

《C语言编程题.docx》由会员分享,可在线阅读,更多相关《C语言编程题.docx(9页珍藏版)》请在冰豆网上搜索。

C语言编程题.docx

C语言编程题

C语言编程题

第1次上机题

1.每个苹果0.8元,第一天买2个苹果,第二天开始,每天

买前一天的2倍,直至当天购买的苹果个数达到不超过

100个最大值。

编写程序求每天平均花多少钱2.已知两个相邻奇数的乘积是399,求这两个相邻的奇数各

是什么,(要求用多种方法编程)

3.筐里有鸡蛋若干,若每次拿2个、3个、4个、5个、6个,

则筐里总会剩一个鸡蛋,若每次拿7个鸡蛋,则筐里不剩

鸡蛋,问筐里有鸡蛋多少个,(要求用多种方法编程,并

比较算法的优劣)

第2次上机题

1(统计1900年到2000年有多少个闰年,先将闰年的年份显示出

来,显示时每行显示十个年份;然后显示出闰年的个数。

2(从键盘输入3个学生的5门课成绩,分别统计出每个学生的平

均成绩。

此题为程序查错题,程序名称为CJTJ.CPP,其中既

有语法错误,也有逻辑错误,将错误查出并改正,使程序能正

确运行。

#inc1ude

#include

main()

{inti,j,

floatg,sum,ave;c1rscr();

sum=0;

for(i=1;i<=3,i++)

{for(j=1;j<=5;j++)

{scanf("%f",g);

sum+=g;

}

ave=sum/5;

printf("No.%fave=%5.2f\n",i,ave),

getch();

}

第3次上机题

1(定义一个含有30个整型元素的数组,按顺序分别赋予从2开

始的偶数;然后按顺序每5个数求出一个平均值,放在另一个

数组中并输出。

2(通过赋初值按行顺序给2×3的二维数组赋予2、4、6、…等偶

数,然后按列的顺序输出该数组。

3(数组a包括10个整数,把a中所有的后项除以前项之商取整

后放入数组b中,并按每行3个元素的格式输出数组b。

4(某班有学生5人,每个人有5门成绩(成绩从键盘输入),求

每门课的最高分,最低分,每个人的平均分,每门课的平均分

及每门课及格和不及格的人数。

要求将最后的结果完整地显示

在屏幕上,平均分取两位小数。

第4次上机题

1.编写求最大公约数的函数,在主函数中输入要求最大公约数的两个数,使用辗转相除法求最大公约数。

222.求方程ax+bx+c=0的根,用3个函数分别求当b-4ac大于零,等于零和小于零时的根,并输出结果。

在主函数中输入a,b,c的值。

使用如下数据进行计算并验证:

编号abcX1X21241-0.2828931-1.7071072121-1.000000-1.0000003243-1.000000+0.701071i-1.000000-0.701071i3.猴子第一天摘桃若干,当天吃了一半又多吃了一个,第二天将剩下的桃子吃了一半又多吃了一个,以后每天如此,到第七天时只剩下一个桃子,分别用递推和递归法求猴子第一天摘了多少个桃子。

函数练习题

练习1:

以下程序的运行结果是()

inta=5;intb=7;

main()

{inta=4,b=5,c;

c=plus(a,b);

printf(“A+B=%d\n”,c);

}

plus(intx,inty)

{intz;

z=x+y;

return(z);

}

练习2:

以下程序的运行结果是()intx;

main()

{x=5;

cude();

printf(“%d\n”,x);

}

cude()

{x=x*x*x;

}

练习3:

以下程序的运行结果是()inti=0;

main()

{inti=5;

reset(i/2);printf(“i=%d\n”,i);

reset(i=i/2);printf(“i=%d\n”,i);

reset(i/2);printf(“i=%d\n”,i);

workover(i);printf(“i=%d\n”,i);

}

workover(inti)

{i=(i%i)*((i*i)/(2*i)+4);printf(“i=%d\n”,i);

return(i);

}

reset(inti)

{i=i<=2?

5:

0;return(i);

}

练习4:

以下程序的运行结果是()

main()

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

increment()

{staticintx=0;x+=1;printf(“%d”,x);}练习5:

以下程序的输出是()

try(inta)

{staticintx=3;

x=x+1;

return(a+x);

}

main()

{inti,x,y=2;

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

x=try(y);

printf(“%d\n”,x);

}

练习6:

以下程序的运行结果是()

intn=1;

main()

{staticintx=5;inty;

y=n;

printf(“MAIN:

x=%2dy=%2dn=%2d\n”,x,y,n);

func();

printf(“MAIN:

x=%2dy=%2dn=%2d\n”,x,y,n);

func();

}

func()

{staticintx=4;inty=10;

x=x+2;

n=n+10;

y=y+n;

printf(“FUNC:

x=%2dy=%2dn=%2d\n”,x,y,n);}

练习7:

下面递归程序的输出是()

main()

{intx;

x=try(6);

printf(“%d\n”,x);

}

try(intn)

{if(n>0)

return(n*try(n-2));

else

return

(1);

}

预处理练习题例题1:

以下叙述中不正确的是:

(1)预处理命令行都必须以#号开始;()

(2)在程序中凡是以#号开始的语句行都是预处理命令行;()(3)C程序在执行过程中对预处理命令行进行处理;()(4)在程序的一行上可以出现多个有效的预处理命令行;()(5)使用带参的宏时,参数的类型应与宏定义时的一致;()(6)宏替换不占用运行时间,只占编译时间;()(7)在以下定义中CR是称为“宏名”的标识符;()

#defineCR045(8)宏名必须用大写字母表示;()

(9)预处理指令只能位于C源程序文件的首部;()

(10)C语言的编译预处理就是对源程序进行初步的语法检查。

()例题2:

在宏定义#definePI3.14159中,用宏名PI代替一个()A)常量B)单精度数C)双精度数D)字符串

例题3:

程序运行结果是()

#defineADD(x)x+x

main()

{intm=1,n=2,k=3;intsum=ADD(m+n)*k;

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

}展开:

例题4:

程序运行结果是()

#defineMIN(x,y)(x)<(y)?

(x):

(y)main()

{inti=10,j=15,k;clrscr();

k=10*MIN(i,j);printf("%d\n",k);}展开:

例题5:

程序运行结果是()

#defineFUDGE(y)2.84+y

#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main()

{intx=2;clrscr();

PRINT1(FUDGE(5)*x);

}

例题6:

程序输出的结果是()

#defineX5

#defineYX+1

#defineZY*X/2

main()

{inta;a=Y;clrscr();printf("%d\n",Z);

printf("%d\n",--a);

}Z展开:

例题7:

程序运行结果是()

#definePOWER(x)((x)*(x))main()

{inti=1;clrscr();

while(i<=4)printf("%d\t",POWER(i++));

}

例题8:

程序运行的结果是()

#defineMAX(a,b,c)((a)>(b)?

((a)>(c)?

(a):

(c)):

((b)>(c)?

(b):

(c)))main()

{intx,y,z;x=1;y=2;z=3;clrscr();

printf("%d,",MAX(x,y,z));

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

printf("%d\n",MAX(x,y+z,z));

}

指针练习题

练习题:

1.读程序:

xts91演示

sub(intx,inty,int*z)

{*z=y-x;}

main()

{inta,b,c;clrscr();

sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

printf("%4d,%4d,%4d\n",a,b,c);}

A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-72.读程序:

xts92演示

main()

{inta,b,k=4,m=6,*p1=&k,*p2=&m;clrscr();

a=p1==&m;printf("a=%d\n",a);

b=(-*p1)/(*p2)+7;printf("b=%d\n",b);}

[1]A)-1B)1C)0D)4

[2]A)5B)6C)7D)10

3.下面程序应能对两个整型变量的值进行交换,以下正确的

说法是()xts93

main()

{inta=10,b=20;printf(“

(1)a=%d,b=%d\n”,a,b);

swap(&a,&b);printf(“

(2)a=%d,b=%d\n”,a,b);}swap(intp,intq)

{intt;t=p;p=q;q=t;}A)程序正确

B)程序有错,只要将swap(&a,&b);中的参数改为a,b即可C)程序有错,只要将swap()函数中的形参p和q以及t均定

义为指针(执行语句不变)即可

D)以上说法都不正确

4.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()xts95main()

{int*p,*q,a,b;p=&a;printf(“inputa:

”);scanf(“%d”,*p);...}A)*p表示的是指针变量p的地址

B)*p表示的是变量a的值,而不是变量a的地址C)*p表示的是指针变量p的值

D)*p只能用来说明p是一个指针变量

练习题:

例题1:

已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是()A)k=*ptr1+*ptr2;B)ptr2=k;

C)ptr1=ptr2;D)k=*ptr1*(*ptr2);xts98

例题2:

下面程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1