c语言实用经典100题(编辑修改稿)内容摘要:
t i。 int fact()。 for(i=0。 i5。 i++) printf(\40:%d!=%d\n,i,fact(i))。 } int fact(j) int j。 { int sum。 if(j==0) sum=1。 else sum=j*fact(j1)。 return sum。 } ============================================================== 【程序 27】 题目:利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出 来。 : : include main() { int i=5。 void palin(int n)。 printf(\40:)。 palin(i)。 printf(\n)。 } void palin(n) int n。 { char next。 if(n=1) { next=getchar()。 printf(\n\0:)。 putchar(next)。 } else { next=getchar()。 palin(n1)。 putchar(next)。 } } ============================================================== 【程序 28】 题目:有 5 个人坐在一起,问第五个人多少岁。 他说比第 4 个人大 2 岁。 问第 4个人岁数,他说比第 3 个人大 2 岁。 问第三个人,又说比第 2 人大两岁。 问第 2个人,说比第一个人大两岁。 最后 问第一个人,他说是 10 岁。 请问第五个人多大。 :利用递归的方法,递归分为回推和递推两个阶段。 要想知道第五个人岁数,需知道 第四人的岁数,依次类推,推到第一人( 10 岁),再往回推。 : age(n) int n。 { int c。 if(n==1) c=10。 else c=age(n1)+2。 return(c)。 } main() { printf(%d,age(5))。 } ============================================================== 【程序 29】 题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程 序分析:学会分解出每一位数,如下解释: (这里是一种简单的算法,师专数 002 班赵鑫提供 ) : main( ) { long a,b,c,d,e,x。 scanf(%ld,amp。 x)。 a=x/10000。 /*分解出万位 */ b=x%10000/1000。 /*分解出千位 */ c=x%1000/100。 /*分解出百位 */ d=x%100/10。 /*分解出十位 */ e=x%10。 /*分解出个位 */ if (a!=0) printf(there are 5, %ld %ld %ld %ld %ld\n,e,d,c,b,a)。 else if (b!=0) printf(there are 4, %ld %ld %ld %ld\n,e,d,c,b)。 else if (c!=0) printf( there are 3,%ld %ld %ld\n,e,d,c)。 else if (d!=0) printf(there are 2, %ld %ld\n,e,d)。 else if (e!=0) printf( there are 1,%ld\n,e)。 } ============================================================== 【程序 30】 题目:一个 5 位数,判断它是不是回文数。 即 12321是回文数,个位与万位相同,十位与千位相同。 :同 29 例 : main( ) { long ge,shi,qian,wan,x。 scanf(%ld,amp。 x)。 wan=x/10000。 qian=x%10000/1000。 shi=x%100/10。 ge=x%10。 if (ge==wanamp。 amp。 shi==qian)/*个位等于万位并且十位等于千位 */ printf(this number is a huiwen\n)。 else printf(this number is not a huiwen\n)。 } 【程序 31】 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。 :用情况语句比较好,如果第一个字母一样,则判断用情况语句或 if 语句判断第二个字母。 : include void main() { char letter。 printf(please input the first letter of someday\n)。 while ((letter=getch())!=39。 y39。 )/*当所按字母为 y 时才结束 */ { switch (letter) {case 39。 s39。 :printf(please input second letter\n)。 if((letter=getch())==39。 a39。 ) printf(saturday\n)。 else if ((letter=getch())==39。 u39。 ) printf(sunday\n)。 else printf(data error\n)。 break。 case 39。 f39。 :printf(friday\n)。 break。 case 39。 m39。 :printf(monday\n)。 break。 case 39。 t39。 :printf(please input second letter\n)。 if((letter=getch())==39。 u39。 ) printf(tuesday\n)。 else if ((letter=getch())==39。 h39。 ) printf(thursday\n)。 else printf(data error\n)。 break。 case 39。 w39。 :printf(wednesday\n)。 break。 default: printf(data error\n)。 } } } ============================================================== 【程序 32】 题目: press any key to change color, do you want to try it. please hurry up! : : include void main(void) { int color。 for (color = 0。 color 8。 color++) { textbackground(color)。 /*设置文本的背景颜色 */ cprintf(this is color %d\r\n, color)。 cprintf(press any key to continue\r\n)。 getch()。 /*输入字符看不见 */ } } ============================================================== 【程序 33】 题目:学习 gotoxy()与 clrscr()函数 : : include void main(void) { clrscr()。 /*清屏函数 */ textbackground(2)。 gotoxy(1, 5)。 /*定位函数 */ cprintf(output at row 5 column 1\n)。 textbackground(3)。 gotoxy(20, 10)。 cprintf(output at row 10 column 20\n)。 } ============================================================== 【程序 34】 题目:练习函数调用 1. 程序分析: : include void hello_world(void) { printf(hello, world!\n)。 } void three_hellos(void) { int counter。 for (counter = 1。 counter = 3。 counter++) hello_world()。 /*调用此函数 */ } void main(void) { three_hellos()。 /*调用此函数 */ } ============================================================== 【程序 35】 题目:文本颜色设置 : : include void main(void) { int color。 for (color = 1。 color 16。 color++) { textcolor(color)。 /*设置文本颜色 */ cprintf(this is color %d\r\n, color)。 } textcolor(128 + 15)。 cprintf(this is blinking\r\n)。 } ============================================================== 【程序 36】 题目:求 100 之内的素数 : : include include define n 101 main() { int i,j,line,a[n]。 for(i=2。 ifor(i=2。 i for(j=i+1。 j { if(a[i]!=0amp。 amp。 a[j]!=0) if(a[j]%a[i]==0) a[j]=0。 } printf(\n)。 for(i=2,line=0。 i{ if(a[i]!=0) {printf(%5d,a[i])。 line++。 } if(line==10) {printf(\n)。 line=0。 } } } ============================================================== 【程序 37】 题目:对 10 个数进行排序 :可以利用选择法,即从后 9 个比较过程中,选择一个最小的与第一个元素交换 , 下次类推,即用第二个元素与后 8 个进行比较,并进行交换。 : define n 10 main() {int i,j,min,tem,a[n]。 /*input data*/ printf(please input ten num:\n)。 for(i=0。 i{ printf(a[%d]=,i)。 scanf(%d,amp。 a[i])。 } printf(\n)。 for(i=0。 iprintf(%5d,a[i])。 printf(\n)。 /*sort ten num*/ for(i=0。 i{min=i。 for(j=i+1。 jif(a[min]a[j]) min=j。 tem=a[i]。 a[i]=a[min]。 a[min]=tem。 } /*output data*/ printf(after sorted \n)。 for(i=0。 iprintf(%5d,a[i])。 } ============================================================== 【程序 38】 题目:求一个 3*3 矩 阵对角线元素之和 :利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出。 : main() { float a[3][3],sum=0。 int i,j。 printf(please input rectangle element:\n)。 for(i=0。 i3。 i++) for(j=0。 j3。 j++) scanf(%f,amp。 a[i][j])。 for(i=0。 i3。 i++) sum=sum+a[i][i]。 printf(duijiaoxian he is %,sum)。 } ===================================================。c语言实用经典100题(编辑修改稿)
相关推荐
答案: fopen 111. 以随机访问方式读取文件中的数据通常使用函数。 答案: fread 112. 函数 把文件位置指针重定位到文件中的指定的位置。 答案: fseek 113. 自 结构用来构造动态数据结构。 答案:引用 114. 函数 用来动态分配内存。 答案: malloc *115. 是一种特殊的链表,它只允许在链表的开始位置插入删除结点。 答案:堆栈 *116.
20 显示以下消息后尝试重新启动程序; Program terminated normally 要正确地运行程序,必须通过使用 Debug n(名称)和 l(加载)命令重新加载该程序。 ++++ Debug:H(十六进制) 对指定的两个参数执行十六进制运算。 h value1 value2 参数 value1 代表从 0 到 FFFFh 范围内的任何十六进制数字。 value2 代表从 0 到
m窗口进行画线,定义范围,注意选择线的粗细和颜色( 画线注意:一定要将线的头尾画到影像的边缘,左键开始,右键结束,右键确定 ); 添加标记: Annotation: Rectangle 窗口 — Object— Symbol— 选择符号 — 更改颜色和大小 — 将标记加在不要的影像一边; 画好线、添加完标记以后,进行存储: Annotation: Rectangle 窗口 — File—
argdx 所指的地址写 argcx 字节 4 除把 handle 当设备号 (0=当前 ,1=A,等 )之外 ,均和 cmd=2 时一样 5 除把 handle 当设备号 (0=当前 ,1=A,等 )之外 ,均和 cmd=3 时一样 6 取输入状态 7 取输出状态 8 测试可换性。 只对于 DOS 11 置分享冲突的重算计数。 只对 DOS int (*ssignal(int sig
amp。 amp。 b c 的值为 …………………………………… ( ) ① 0 ② 1 ③ 3 ④ 5 3 s1和 s2分别为两个字符串变量,下列语 句中,错误的是 ……………… ( ) ① strcpy( s1 , s2 ) ② gets(s1 ,s2) ③ strcmp( s1 , s2 ) ④ strcat( s1 , s2 ) 3 设 a 、 b、 c的值分别为2、3、 4 ,
t+=a++。 } else { static int a=5。 t+=a++。 } return t+=a++。 } main() { int i,s=0。 for(i=0。 i3。 i++) s+=fun(i)。 printf(s=%d\n,s)。 } 运行结果 __s=27 _______ 17. 写出程序的运行结果 int fun() { static int x=0。 int t=0。