谢谢你的爱歌词-李白黄鹤楼打油诗
经典
C
语言程序设计
100
例
1.
数字排列
37.
对
10
个数进行排序
2.
奖金分配问题
38.
求
3*3
矩阵对角线 元素之和
3.
已知条件求解整数
4.
输入日期判断第几天
39.
数字插入数组重新排序
4 0.
将
5.
输入整数进行排序
一个数组逆序输出
6.
用
*
号显示字母
C
的图案
定义静态变量用法
42.
7.
显示特殊图案
使 用
auto
定义变量用法
43.
使用
8.
打印九九口诀
static
的另一用法
9.
输出国际象棋棋盘
44.
使用
external
的用法
10.< br>打印楼梯并按条件打印笑脸
45.
使用
register
定义变量方法
11.
经典兔子问题
46.
宏
#define
命令练习
(1)
12.
判断素数
47.
宏
#define
命令练习
(2)
13.
水仙花数问题
48.
宏
#define
命令练习
(3)
14.
正整数分解质因数
49.#if
#ifdef
和
#ifndef
的综合应
15.
学习成绩划分
用
16.
正整数求其最大公约数和最
50.#include
的应用练习
小公倍数
51.
学习使用按位与
&
17.
统计英文字母
/
空格
/
数字个
52.
学习使用按位或
|
数
53.
学习使用按位异或
^
18.
求
s=a+ aa+aaa+aa...a
的值
54.
取
一
个
整
数
从
右
端
开
始
的
19.
求解
完数
4
~
7
位。
20.
球体自由落下物理问题
55.
学习使用按位取反
~
21.
猴子吃桃问题
56.
用
circle
画圆形
22.
乒乓球比赛抽签问题
57.
学用
line
画直线
23.
打印菱形图案
58.
用
rectangle
画方形
24.
分数数列求和
59.
画图综合例子
1
25.
求
1+2!+3!+...+20!
的和
26.
60 .
画图综合例子
2
利用递归方法求
5!
61.
打印杨辉三角形
27.
将输入字符以相反顺序打 印
62.
学习
putpixel
画点
28.
岁数问题
63.
画椭圆
ellipse
29.
求解正整数位数
64.
利用
ellipse
and
rectangle
画
30.
判断回文数
图
31.
星期几猜测游戏
65.
画个最优美的图案
32.
改变文本颜色
66.
输入
3
个数字按大小顺序输
33.
学习
gotoxy ()
与
clrscr()
函数
出
34.
练习函数调用
67.
输入数组交换元素重新输出
35.
设置文本颜色
68.
多个整数后移位置问题
36.
求
100
之内的素数
69.
圆圈报数问题
-------------- -------------------------------------------------- ----------------
70.
计算一个字符串长度
71.
编写输入
/
输出函数
72.
创建链表
73.
反向输出链表
74.
连接两个链表
75.
算一道简单题目
76.
调用函数求
1/2+1/4+...+1/n
77.
填空练习
(
指向指针的指针
)
78.
找到年龄最大的人
79.
字符串排序
80.
海滩猴子分桃
81.
已知公式条件求数字
82.
八进制转换为十进制
83.
求
0-7
所能 组成的奇数个数
84.
由两个素数之和表示的偶数
85.
判断一个素数能被几个
9
整
除
86.
两个字符串连接程序
87.
结构体变量传递
88.
读取数字的整数值并打印出
该值个数的*
89.
数据加密
90.
专升本一题
91.
时间函数举例
1
92.
时间函数举例
2
93.
时间函数举例
3
94.
一个猜数游戏
95.
家庭财务管理小程序
96.
计算字符串中子串出现的次
数
97.
输入字符并保 存到磁盘
98.
字
符串转换成大写字母并输出保
存
99.
文件操作应用
1
100.
文件操作应用
2
c
语言经典
100
题【实用】
【程序
1
】
题目:有
1
、
2
、
3
、
4
个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?< br>
1.
程序分析:可填在百位、十位、个位的数字都是
1
、
2
、
3
、
4
。组成所有的排列后再去
掉不满足条件的排列。
2.
程序源代码:
main()
{
int i,j,k;
printf(
for(i=1;i<5;i++)
/
*
以下为三重循环
*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k)
/*
确保
i
、
j
、
k
三位互不相同
*/
printf(
}
}
================================== ============================
【程序
2
】
题目:企业发放的奖金根据利润提成。利润
(i)
低于或等于
10
万 元时,奖金可提
10%
;利润
高
于
10
万元,低于
20
万元时,低于
10
万元的部分按10%
提成,高于
10
万元的部分,
可可提
成
7.5%
;
20
万到
40
万之间时,高于
20
万元的部分,可提成
5%
;
40
万到< br>60
万之间
时高于
40
万 元的部分,
可提成
3%
;
60
万到
100
万之间时 ,
高于
60
万元的部分,
可提成
1.5%
,
高于< br>
100
万元时,超过
100
万元的 部分按
1%
提成,从键盘输入当月利润
i
,求应发放奖金
总数?
1.
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
2.
程序源代码:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
sca nf(
bonus1=100000*0.1;bonus2=bonus1+100000*0.75 ;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf(
}
=================== ===========================================
【程序
3
】
题目:
一个整数,它加上
100后是一个完全平方数,
再加上
168
又是一个完全平方数,请问
该数是多 少?
1.
程序分析:在
10
万以内判断,先将该数加上
1 00
后再开方,再将该数加上
268
后再开方,
如果开方后
的结果满足如下条件,即是结果。请看具体分析:
2.
程序源代码:
#include
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100);
/*x
为加上
100
后开方后的结果
*/
y=sqrt(i+268);
/*y
为再加上
168
后开方后的结果
*/
if(x*x==i+100&&y*y==i+268)/*
如果一个数的平方根 的平方等于该数,这说明此数是
完全平方数
*/
printf(
}
}
================== ============================================
【程序
4
】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.
程序分析: 以
3
月
5
日为例,应该先把前两个月的加起来,然后再加上
5
天即本年的第几
天,特殊
情况,闰年且输入月份大于
3
时需考虑多加一天。
2.
程序源代码:
main()
{
int day,month,year,sum,leap;
printf(
scanf(
switch(month)/*
先计算某月以前月份的总天数
*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf(
}
sum=sum+day;
/*
再加上某天的天数
*/
if(year%400 ==0||(year%4==0&&year%100!=0))/*
判断是不是闰年
*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*
如果是闰年且月份 大于
2,
总天数应该加一天
*/
sum++;
printf(< br>=============================================== ===============
【程序
5
】
题目:输入三个整数
x,y,z
,请把这三个数由小到大输出。
1 .
程序分析:我们想办法把最小的数放到
x
上,先将
x
与
y
进行比较,如果
x>y
则将
x
与
y
的值进行交换,
然后再用
x与
z
进行比较,
如果
x>z
则将
x
与
z
的值进行交换,
这样能使
x
最
小。
2.
程序源代码:
main()
{
int x,y,z,t;
scanf(
if (x>y)
{t=x;x=y;y=t;} /*
交换
x,y
的值
*/
if(x>z)
{t=z;z=x;x=t;}/*
交换
x,z
的值
*/
if(y>z)
{t=y;y=z;z=t;}/*
交换
z,y
的值
*/
printf(
}
============================= =================================
【程序
6
】
题目:用
*
号输出字母
c
的图案。
1.
程序分析:可先用
'*'
号在纸上写出字母
c
,再分行输出。
2.
程序源代码:
#include
main()
{
printf(
printf(
printf(
printf(
pr intf(
}
=================================== ===========================
【程序
7
】
题目:输出特殊图案,请在
c
环境中运行,看一看,
very beautiful!
1.
程序分析:字符共有
256
个。不同字符,图形不一样。
2.
程序源代码:
#include
main()
{
char a=176,b=219;
printf(
printf(
printf(
printf(
printf(
============================ ==================================
【程序
8
】
题目:输出
9*9
口诀。
1.
程序分析:分行与列考虑,共
9
行
9
列,
i< br>控制行,
j
控制列。
2.
程序源代码:
#include
main()
{
int i,j,result;
printf(
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{
result=i*j;
printf(
表示左对齐,占
3
位
*/
}
printf(
每一行后换行
*/
}
}
============================================== ================
【程序
9
】
题目:要求输出国际象棋棋盘。
1.
程序分析:
用
i控制行,
j
来控制列,
根据
i+j
的和的变化来控制输出黑方格 ,
还是白方格。
2.
程序源代码:
#include
main()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf(
else
printf(
printf(
}
}
================================== ============================
【程序
10
】
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
1.
程序分析 :用
i
控制行,
j
来控制列,
j
根据
i
的 变化来控制输出黑方格的个数。
2.
程序源代码:
#include
main()
{
int i,j;
printf(
输出两个笑脸
*/
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf(
printf(
}
}
【程序
11
】
题目:
古典问题:有一对兔子,
从 出生后第
3
个月起每个月都生一对兔子,
小兔子长到第三
个月
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.
程序分析:
兔子的规律为数列
1,1,2,3,5,8,13,21....
2.
程序源代码:
main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{ printf(
if(i%2==0) printf(
控制输出,每行四个
*/
f1=f1+f2; /*
前两个月加起来赋值给第三个月
*/
f2=f1+f2; /*
前两个月加起来赋值给第三个月
*/
}
}
================================== ============================
【程序
12
】
题目:判断
101-200
之间有多少个素数,并输出所有素数。
1.
程序分析:判断素数的方法:用一个数分别去除
2
到
sqrt(
这个数
)
,如果能被整除,
则表明此数不是素数,反之是素数。
2.
程序源代码:
#include
main()
{
int m,i,k,h=0,leap=1;
printf(
for(m=101;m<=200;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf(
if(h%10==0)
printf(
}
leap=1;
}
printf(
}
================== ============================================
【程序
13
】
题目:打印出所有的“水仙花数”
,所谓“ 水仙花数”是指一个三位数,其各位数字立方和
等于该数
< br>本身。例如:
153
是一个“水仙花数”
,因为
153=1
的 三次方+
5
的三次方+
3
的三次
方。
1.
程序分析:利用
for
循环控制
100-999
个数,每个数分解出个位, 十位,百位。
2.
程序源代码:
main()
{
int i,j,k,n;
printf(
for(n=100;n<1000;n++)
{
i=n/100;/*
分解出百位
*/
j=n/10%10;/*
分解出十位
*/
k=n%10;/*
分解出个位
*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf(
}
}
printf(
}
======= ================================================== =====
【程序
14
】
题目:将一个正整数分解质因数。例如 :输入
90,
打印出
90=2*3*3*5
。
程序分析: 对
n
进行分解质因数,应先找到一个最小的质数
k
,然后按下述步骤完成:< br>
(1)
如果这个质数恰等于
n
,则说明分解质因数的过程 已经结束,打印出即可。
(2)
如果
n<>k
,但
n能被
k
整除,则应打印出
k
的值,并用
n
除以
k
的商
,
作为新的正整数你
n,
重复执行第一步。
(3)
如果
n
不能被
k
整除,则用
k+1
作为
k
的值
,
重复执行第一步。
2.
程序源代码:
/* zheng int is divided yinshu*/
main()
{
int n,i;
printf(
scanf(
printf(
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{ printf(
n=n/i;
}
else
break;
}
}
printf(< br>=============================================== ===============
【程序
15
】
题目:利用条件 运算符的嵌套来完成此题:
学习成绩
>=90
分的同学用
a
表示,< br>60-89
分之间
的用
b
表示,
60
分以下的用
c
表示。
1.
程序分析:
(a>b)?a:b
这是条件运算符的基本例子。
2.
程序源代码:
main()
{
int score;
char grade;
printf(
scanf(
grade=score>=90?'a':(score>=60?'b':'c');
printf(
}
============================= =================================
【程序
16
】
题目:输入两个正整数
m
和
n
,求其最大公约数和最小公倍数。
1.
程序分析:利用辗除法。
2.
程序源代码:
main()
{
int a,b,num1,num2,temp;
printf(
scanf(
if(num1
{ temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*
利用辗除法,直到
b
为
0
为止
*/
{
temp=a%b;
a=b;
b=temp;
}
printf(
printf(
}
================== ============================================
【程序
17
】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1 .
程序分析:利用
while
语句
,
条件为输入的字符不为
'n'.
2.
程序源代码:
#include
main()
{char c;
int letters=0,space=0,digit=0,others=0;
printf(
while((c=getchar())!='n')
{
if(c>='a'&&c<='z'||c>='a'&&c<='z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
others++;
}
printf(
space,digit,others);
}
==== ================================================== ========
【程序
18
】
题目:求
s=a+aa +aaa+aaaa+aa...a
的值,其中
a
是一个数字。例如
2+22 +222+2222+22222(
此
时
共有
5
个数相加
)
,几个数相加有键盘控制。
1.
程序分析:关键是计算出每一项的值。
2.
程序源代码:
main()
{
int a,n,count=1;
long int sn=0,tn=0;
printf(
scanf(
printf(
while(count<=n)
{
tn=tn+a;
sn=sn+tn;
a=a*10;
++count;
}
printf(
}
============================= =================================
【程序
19
】
题目:一个数如果恰好等于它的因子之和,这个数就 称为“完数”
。例如
6=1
+
2
+
3.
编程
找出
1000
以内的所有完数。
1.
程序分析:请参照程序
<--
上页程序
14.
2.
程序源代码:
main()
{
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i
{
if((j%i)==0)
{
n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf(
for(i=0;i
printf(
printf(
}
}
}
============================================== ================
【程序
20
】
题 目:一球从
100
米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第
10
次落地时,共经过多少米?第
10
次反弹多高?
1.
程序分析:见下面注释
2.
程序源代码:
main()
{
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;/*
第
n
次落地时共经过的米数
*/
hn=hn/2; /*
第
n
次反跳高度
*/
}
printf(
printf(
}
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,
又多吃了一个。
以后每天早上都吃了前一天剩
下
的一半零一个。 到第
10
天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多
少。
1.
程序分析:采取逆向思维的方法,从后往前推断。
2.
程序源代码:
main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*
第一天的桃子数是第
2
天桃子数 加
1
后的
2
倍
*/
x2=x1;
day--;
}
printf(
}
======= ================================================== =====
【程序
22
】
题目:两个乒乓球队进行比赛,各出三 人。甲队为
a,b,c
三人,乙队为
x,y,z
三人。已抽签决
定< br>
比赛名单。有人向队员打听比赛的名单。
a
说他不和
x
比,
c
说他不和
x,z
比,请编
程序找 出
三队赛手的名单。
1.< br>程序分析:判断素数的方法:用一个数分别去除
2
到
sqrt(
这个数
)
,如果能被整除,
则表明此数不是素数,反之是素数。
2.
程序源代码:
main()
{
char i,j,k;/*i
是
a
的对手,
j
是
b
的对手,
k
是
c
的对手
*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!=j)
for(k='x';k<='z';k++)
{ if(i!=k&&j!=k)
{ if(i!='x'&&k!='x'&&k!='z')
printf(
}
}
}
}
============================= =================================
【程序
23
】
题目:打印出如下图案(菱形)
*
***
******
********
******
***
*
1.
程序分析:先把图形分成两部分来看待,前四行一个规律, 后三行一个规律,利用双重
for
循环,第一层控制行,第二层控制列。
2.
程序源代码:
main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(
for(k=0;k<=2*i;k++)
printf(
printf(
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(
for(k=0;k<=4-2*i;k++)
printf(
printf(
}
} < br>=============================================== ===============
【程序
24
】
题目 :有一分数序列:
2/1
,
3/2
,
5/3
,
8/ 5
,
13/8
,
21/13...
求出这个数列的前
20< br>项之和。
1.
程序分析:请抓住分子与分母的变化规律。
2.
程序源代码:
main()
{
int n,t,number=20;
float a=2,b=1,s=0;
for(n=1;n<=number;n++)
{
s=s+a/b;
t=a;a=a+b;b=t;/*
这部分是程序的关 键,请读者猜猜
t
的作用
*/
}
printf(
}
============================= =================================
【程序
25
】
题目:求
1+2!+3!+...+20!
的和
1.
程序分析:此程序只是把累加变成了累乘。
2.
程序源代码:
main()
{
float n,s=0,t=1;
for(n=1;n<=20;n++)
{
t*=n;
s+=t;
}
printf(
}
============================= =================================
【程序
26
】
题目:利用递归方法求
5!
。
1.
程序分析:递归公式:
fn=fn_1*4!
2.
程序源代码:
#include
main()
{
int i;
int fact();
for(i=0;i<5;i++)
printf(
}
int fact(j)
int j;
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
======================================== ======================
【程序
27
】
题目:利用递归函数调用方式,将所输入的
5
个字符,以相反顺序打印出来。
1.
程序分析:
2.
程序源代码:
#include
main()
{
int i=5;
void palin(int n);
printf(
palin(i);
printf(
}
void palin(n)
int n;
{
char next;
if(n<=1)
{
next=getchar();
printf(
putchar(next);
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}
========== ================================================== ==
【程序
28
】
题目:有
5
个人 坐在一起,问第五个人多少岁?他说比第
4
个人大
2
岁。问第
4个人岁数,
他说比第
3
个人大
2
岁。问第三个人,又说比第
2
人大两岁。问第
2
个人,说比第一 个人大两
岁。最后
问第一个人,他说是
10
岁。请问第五个人多大?
1.
程 序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需
知道
第四人的岁数,依次类推,推到第一人(
10
岁)
,再往回推。
2.
程序源代码:
age(n)
int n;
{
int c;
if(n==1) c=10;
else c=age(n-1)+2;
return(c);
}
main()
{ printf(
}
=========================== ===================================
【程序
29
】
题目:给一个不多于
5
位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
1.
程序分析 :学会分解出每一位数,如下解释:
(
这里是一种简单的算法,师专数
002
班赵
鑫提供
)
2.
程序源代码:
main( )
{
long a,b,c,d,e,x;
scanf(
a=x/10000;/*
分解出万位
*/
b=x%10000/1000;/*
分解出千位
*/
c=x%1000/100;/*
分解出百位
*/
d=x%100/10;/*
分解出十位
*/
e=x%10;/*
分解出个位
*/
if (a!=0) printf(
else if (b!=0) printf(
else if (c!=0) printf(
else if (d!=0) printf(
else if (e!=0) printf(
}
========= ================================================== ===
【程序
30
】
题目:一个
5
位数,判断它是不是回文数。即
12321
是回文数,个位与万位相同,十位与千
位相 同。
1.
程序分析:同
29
例
2.
程序源代码:
main( )
{
long ge,shi,qian,wan,x;
scanf(
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if (ge==wan&&shi==qian)/*
个位等于万位并且十位等于千位
*/
printf(
else
printf(
}
【程序
31
】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
判断第二个字母。
1.
程序分析:用情况 语句比较好,如果第一个字母一样,则判断用情况语句或
if
语句判断第
二个字母。< br>
2.
程序源代码:
#include
void main()
{
char letter;
printf(
while ((letter=getch())!='y')/*
当所按字母为
y
时才结束
*/
{ switch (letter)
{case 's':printf(
if((letter=getch())=='a')
printf(
else if ((letter=getch())=='u')
printf(
else printf(
break;
case 'f':printf(
case 'm':printf(
case 't':printf(
if((letter=getch())=='u')
printf(
else if ((letter=getch())=='h')
printf(
else printf(
break;
case 'w':printf(
default: printf(
}
}
}
============================= =================================
【程序
32
】
题目:
press any key to change color, do you want to try it. please hurry up!
1.
程序分析:
2.
程序源代码:
#include
void main(void)
{
int color;
for (color = 0; color < 8; color++)
{
textbackground(color);/*
设置文本的背景颜色
*/
cprintf(
cprintf(
getch();/*
输入字符看不见
*/
}
} < br>=============================================== ===============
【程序
33
】
题目:学习
gotoxy()
与
clrscr()
函数
1.
程序分析:
2.
程序源代码:
#include
void main(void)
{
clrscr();/*
清屏函数
*/
textbackground(2);
gotoxy(1, 5);/*
定位函数
*/
cprintf(
textbackground(3);
gotoxy(20, 10);
cprintf(
}
======================= =======================================
【程序
34
】
题目:练习函数调用
1.
程序分析:
2.
程序源代码:
#include
void hello_world(void)
{
printf(
}
void three_hellos(void)
{
int counter;
for (counter = 1; counter <= 3; counter++)
hello_world();/*
调用此函数
*/
}
void main(void)
{
three_hellos();/*
调用此函数
*/
}
=== ================================================== =========
【程序
35
】
题目:文本颜色设置
1.
程序分析:
2.
程序源代码:
#include
void main(void)
{
int color;
for (color = 1; color < 16; color++)
{
textcolor(color);/*
设置文本颜色
*/
cprintf(
}
textcolor(128 + 15);
cprintf(
}
============================ ==================================
【程序
36
】
题目:求
100
之内的素数
1.
程序分析:
2.
程序源代码:
#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]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;}
printf(
for(i=2,line=0;i{
if(a[i]!=0)
{printf(
line++;}
if(line==10)
{printf(
line=0;}
}
}
========= ================================================== ===
【程序
37
】
题目:对
10
个数进行排序
1.
程序分析:
可以 利用选择法,
即从后
9
个比较过程中,
选择一个最小的与第一个元素交换,< br>
下次类推,即用第二个元素与后
8
个进行比较,并进行交换。
2.
程序源代码:
#define n 10
main()
{int i,j,min,tem,a[n];
/*input data*/
printf(
for(i=0;i{
printf(
scanf(
printf(
for(i=0;iprintf(
printf(
/*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(
for(i=0;iprintf(
}
========= ================================================== ===
【程序
38
】
题目:求一个
3*3
矩阵对角线元素之和
1.
程序分析:利用双重
for
循环控制输入二维数组,再将
a[i][i]
累加 后输出。
2.
程序源代码:
main()
{
float a[3][3],sum=0;
int i,j;
printf(
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf(
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf(
}
======== ================================================== ====
【程序
39
】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1.
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入< br>后
此元素之后的数,依次后移一个位置。
2.
程序源代码:
main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf(
for(i=0;i<10;i++)
printf(< br>printf(
printf(
scanf(
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{ if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
for(i=0;i<11;i++)
printf(
}
============================= =================================
【程序
40
】
题目:将一个数组逆序输出。
1.
程序分析:用第一个与最后一个交换。
2.
程序源代码:
#define n 5
main()
{ int a[n]={9,6,5,4,1},i,temp;
printf(
for(i=0;i
printf(
for(i=0;i
{temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
}
printf(
for(i=0;i
printf(
}
程序
41
】
题目:学习
static
定义静态变量的用法
1.
程序分析:
2.
程序源代码:
#include
varfunc()
{
int var=0;
static int static_var=0;
printf(
printf(
printf(
var++;
static_var++;
}
void main()
{int i;
for(i=0;i<3;i++)
varfunc();
}
========================= =====================================
【程序
42
】
题目:学习使用
auto
定义变量的用法
1.
程序分析:
2.
程序源代码:
#include
main()
{int i,num;
num=2;
for (i=0;i<3;i++)
{ printf(
num++;
{
auto int num=1;
printf(
num++;
}
}
}
============= =================================================
【程序
43
】
题目:学习使用
static
的另一用法。
1.
程序分析:
2.
程序源代码:
#include
main()
{
int i,num;
num=2;
for(i=0;i<3;i++)
{
printf(
num++;
{
static int num=1;
printf(
num++;
}
}
}
====== ================================================== ======
【程序
44
】
题目:学习使用
external
的用法。
1.
程序分析:
2.
程序源代码:
#include
int a,b,c;
void add()
{ int a;
a=3;
c=a+b;
}
void main()
{ a=b=4;
add();
printf(
}
===== ================================================== =======
【程序
45
】
题目:学习使用
register
定义变量的方法。
1.
程序分析:
2.
程序源代码:
void main()
{
register int i;
int tmp=0;
for(i=1;i<=100;i++)
tmp+=i;
printf(
}
============================= =================================
【程序
46
】
题目:宏
#define
命令练习
(1)
1.
程序分析:
2.
程序源代码:
#include
#define true 1
#define false 0
#define sq(x) (x)*(x)
void main()
{
int num;
int again=1;
printf(
while(again)
{
printf(
scanf(
printf(
if(num>=50)
again=true;
else
again=false;
}
}
================= =============================================
【程序
47
】
题目:宏
#define
命令练习
(2)
1.
程序分析:
2.
程序源代码:
#include
#define exchange(a,b) { /*
宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上
int t;
t=a;
a=b;
b=t;
}
void main(void)
{
int x=10;
int y=20;
printf(
exchange(x,y);
printf(
}
================================================= =============
【程序
48
】
题目:宏
#define
命令练习
(3)
1.
程序分析:
2.
程序源代码:
#define lag >
#define sma <
#define eq ==
#include
void main()
{ int i=10;
int j=20;
if(i lag j)
printf(
else if(i eq j)
printf(
else if(i sma j)
printf(
else
printf(
}
========= ================================================== ===
【程序
49
】
题目:
#if #ifdef
和
#ifndef
的综合应用。
1.
程序分析:
2.
程序源代码:
#include
#define max
#define maximum(x,y) (x>y)?x:y
#define minimum(x,y) (x>y)?y:x
void main()
{ int a=10,b=20;
#ifdef max
printf(
#else
printf(
#endif
#ifndef min
printf(
#else
printf(
#endif
#undef max
#ifdef max
printf(
#else
printf(
#endif
#define min
#ifndef min
printf(
#else
printf(
#endif
}
======================================== ======================
【程序
50
】
题目:
#include
的应用练习
1.
程序分析:
2.
程序源代码:
test.h
文件如下:
#define lag >
#define sma <
#define eq ==
#include
一个新文件
50.c
,包含
test.h*/
#include
void main()
{ int i=10;
int j=20;
if(i lag j)
printf(
else if(i eq j)
printf(
else if(i sma j)
printf(
else
printf(
}
程序
51
】
题目:学习使用按位与
&
。
1.
程序分析:
0&0=0; 0&1=0; 1&0=0; 1&1=1
2.
程序源代码:
#include
main()
{
int a,b;
a=077;
b=a&3;
printf(
b&=7;
printf(
}
============================= =================================
【程序
52
】
题目:学习使用按位或
|
。
1.
程序分析:
0|0=0; 0|1=1; 1|0=1; 1|1=1
2.
程序源代码:
#include
main()
{
int a,b;
a=077;
b=a|3;
printf(
b|=7;
printf(
}
============================= =================================
【程序
53
】
题目:学习使用按位异或
^
。
1.
程序分析:
0^0=0; 0^1=1; 1^0=1; 1^1=0
2.
程序源代码:
#include
main()
{
int a,b;
a=077;
b=a^3;
printf(
b^=7;
printf(
}
============================= =================================
【程序
54
】
题目:取一个整数
a
从右端开始的
4
~
7
位。
程序分析:可以这样考虑:
(1)
先使
a
右移
4
位。
( 2)
设置一个低
4
位全为
1,
其余全为
0
的数。可 用
~(~0<<4)
(3)
将上面二者进行
&
运算。
2.
程序源代码:
main()
{
unsigned a,b,c,d;
scanf(
b=a>>4;
c=~(~0<<4);
d=b&c;
printf(
}
================== ============================================
【程序
55
】
题目:学习使用按位取反
~
。
1.
程序分析:
~0=1; ~1=0;
2.
程序源代码:
#include
main()
{
int a,b;
a=234;
b=~a;
printf(
a=~a;
printf(
}
=== ================================================== =========
【程序
56
】
题目:画图,学用
circle
画圆形。
1.
程序分析:
2.
程序源代码:
/*circle*/
#include
main()
{int driver,mode,i;
float j=1,k=1;
driver=vga;mode=vgahi;
initgraph(&driver,& mode,
setbkcolor(yellow);
for(i=0;i<=25;i++)
{
setcolor(8);
circle(310,250,k);
k=k+j;
j=j+0.3;
}
}
============================= =================================
【程序
57
】
题目:画图,学用
line
画直线。
1.
程序分析:
2.
程序源代码:
#include
main()
{int driver,mode,i;
float x0,y0,y1,x1;
float j=12,k;
driver=vga;mode=vgahi;
initgraph(&driver,&mode,
setbkcolor(green);
x0=263;y0=263;y1=275;x1=275;
for(i=0;i<=18;i++)
{
setcolor(5);
line(x0,y0,x0,y1);
x0=x0-5;
y0=y0-5;
x1=x1+5;
y1=y1+5;
j=j+10;
}
x0=263;y1=275;y0=263;
for(i=0;i<=20;i++)
{
setcolor(5);
line(x0,y0,x0,y1);
x0=x0+5;
y0=y0+5;
y1=y1-5;
}
}
============================================== ================
【程序
58
】
题目:画图,学用
rectangle
画方形。
1.
程序分析:利用
for
循环控制
100-999个数,每个数分解出个位,十位,百位。
2.
程序源代码:
#include
main()
{int x0,y0,y1,x1,driver,mode,i;
driver=vga;mode=vgahi;
initgraph(&driver,& mode,
setbkcolor(yellow);
x0=263;y0=263;y1=275;x1=275;
for(i=0;i<=18;i++)
{
setcolor(1);
rectangle(x0,y0,x1,y1);
x0=x0-5;
y0=y0-5;
x1=x1+5;
y1=y1+5;
}
settextstyle(default_font,horiz_dir,2);
outtextxy(150,40,
line(130,60,480,60);
setcolor(2);
circle(269,269,137);
} ================================================ ==============
【程序
59
】
谢谢你的爱歌词-李白黄鹤楼打油诗
谢谢你的爱歌词-李白黄鹤楼打油诗
谢谢你的爱歌词-李白黄鹤楼打油诗
谢谢你的爱歌词-李白黄鹤楼打油诗
谢谢你的爱歌词-李白黄鹤楼打油诗
谢谢你的爱歌词-李白黄鹤楼打油诗
谢谢你的爱歌词-李白黄鹤楼打油诗
谢谢你的爱歌词-李白黄鹤楼打油诗
本文更新与2021-01-24 15:47,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/561279.html
-
上一篇:c语言学习计划
下一篇:C语言学习知识练习进步题(带规范标准答案)