C程序设计经典程序举例

C程序设计经典程序举例
C程序设计经典程序举例

C程序设计经典程序举例

1、判断素数(循环、利用算法减少运算次数)

例:1159:质因数分解

正整数n是两个不同质数的乘积,试求出其中较大的。

#include

#include

int main()

{

long long n,big;

int small;

int root,i,j;

scanf("%lld",&n);

for(small=2;small<=(int)sqrt(n);)

{

//素数判断过程,从最小素数开始

root=(int)sqrt(small);

for(i=2;i<=root+1;i++)

{

if(small%i==0)break;

}

if(i<=root)

{

if(small==2)small++;

else small+=2;

//只判断2和奇数,减少运算次数

continue;

}

if(n%small==0)

{

big=n/small;

root=(int)sqrt(big);

for(i=2;i<=root+1;i++)

{

if(big%i==0)break;

}

if(i<=root)

{

if(small==2)small++;

else small+=2;

continue;

}

else

{

break;

//得到最大质因数,跳出循环

}

}

}

printf("%d %lld",small,big);

return 0;

}

2、递归与回溯算法(解决尝试性问题,每一级都对下一级有影响)

例:1085:0/1迷宫问题

给定一个由0(表示墙壁)和1(表示道路)的迷宫,请你判断进入迷宫后,仅通过横向和纵向的行走是否能从迷宫中走出来,即能否从坐标(1,1)走到(n,m)。

#include

#include

int starti,startj;

int endi,endj;

//定义迷宫起止点

int success=0;

//用于判断是否成功通路

int main()

{

int visit(int i,int j,int maze[][10]);

int i,j;

int n,m;

int maze[10][10];

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

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

for(j=1;j<=m;j++)

{

scanf("%d",&maze[i][j]);

}

starti=1,startj=1,endi=n,endj=m;

if(visit(starti,startj,maze)==0)

{

printf("NO");

}

else

{

printf("YES");

}

return 0;

}

int visit(int i,int j,int maze[][10])

{

maze[i][j]=-1;

//安全性判断已经经过的路

if(i==endi&&j==endj)

{

success=1;

//成功到达终点

}

//进行四个方向的尝试

if(success!=1&&maze[i][j+1]==1)

{

visit(i,j+1,maze);

}

if(success!=1&&maze[i+1][j]==1)

{

visit(i+1,j,maze);

}

if(success!=1&&maze[i-1][j]==1)

{

visit(i-1,j,maze);

}

if(success!=1&&maze[i][j-1]==1)

{

visit(i,j-1,maze);

}

maze[i][j]=0;

//尝试失败返回0,尝试成功返回1

return success;

}

例:全排列问题

输入一个正整数n,按字典序打印其全排列#include

int used[16]={0};

//是否使用判断

int result[16]={0};

//打印结果

void proc(int step,int n)

{

//按步进行数组赋值

int i;

if(step>n)

{

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

{

printf("%d ",result[i]);

}

printf("\n");

}

else

{

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

{

if(used[i]==0)

{

result[step]=i;

used[i]=1;

proc(step+1,n);

used[i]=0;

//回溯

}

}

}

}

int main()

{

int n;

scanf("%d",&n);

proc(1,n);

return 0;

}

例:二分查找

#include

int bisearch( int ary[], int left, int right, int num )

{

printf("search %d from %d to %d\n", num, left, right );

int mid;

//设置二分点进行比较

if(left>right)

return -1;

//未找到需查找的点

mid=(left+right)/2;

if(ary[mid]==num)

return mid;

else

//与二分点进行大小比较后进入递归

if(ary[mid]>num)

bisearch(ary, left, mid-1, num);

else

if(ary[mid]

bisearch(ary, mid+1,right,num);

}

int main()

{

int n, array[10000], i, num;

scanf("%d", &n);

scanf("%d", &num);

for (i=0;i

{

scanf("%d",&array[i]);

}

//数组需有序,若无序数组先进行排序

printf( "%d",bisearch(array,0,n-1,num));

return 0;

}

3、排序问题

冒泡排序

快排函数

4、字符串处理

例:判断回文

#include

#include

#include

int main()

{

char *s=(char*)malloc(sizeof(char)*256);

char change[256]="\0";

gets(s);

int len=strlen(s);

int i;

for(i=0;i

{

change[len-1-i]=*(s+i);

}

if(strcmp(change,s)==0)

{

printf("是");

}

else

{

printf("否");

}

return 0;

}

例:将原字符串中的字符串1替换为字符串2,替换后新出现的字符串不包括在内,仅保留子函数。

char* replace(char *stence,char pstr1[],char pstr2[])

{

if(strcmp(stence,pstr1)==0)

{

return pstr2;

}

//如果原字符串与字符串1相同直接替换

else

if(strstr(stence,pstr1)==NULL)

{

return stence;

}

//找不到字符串1

else

{

char *find=stence;

char final[400]="\0";

while(strlen(find)>strlen(pstr1)&&find!=NULL)

//循环在剩余字符串中能寻找到字符串1时继续进行

{

char change[400]="\0";

char *use=find;

find=strstr(find,pstr1);

//寻找字符串1

for(int i=0;i<(find-use);i++)

{

change[i]=*(use+i);

}

find=find+strlen(pstr1);

//直接跳过字符串1

strcat(final,change);

//将出现字符串1之前的部分粘到最终字符串中

strcat(final,pstr2);

//粘贴字符串2到最终字符串

if(strstr(find,pstr1)==NULL)

//剩余字符串中搜索不到字符串1

{

break;

}

}

if(strcmp(find,pstr1)!=0)

//剩余的不是字符串1,直接粘贴到最终字符串中,如果是,直接返回

{

strcat(final,find);

}

return final;

}

}

顺序结构选择结构和循环结构的程序设计典型例题分析与解答

顺序结构、选择结构和循环结构的程序设计典型例题分析与解答 1 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构 【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。【答案】多分支 2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。 【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。 【答案】直到型 3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。 【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。【答案】#include"stdio.h"或#include<stdio.h> 4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( ) ①'A'/②A/③x=A/ ④x=A,y=12/ 12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键 【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符, 在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。【答案】④ 5 设有下列程序段,则执行该程序段后的输出是( ) int i=012; float f=1.234E-2; printf("i=%-5df=%5.3f",i,f); ... ①i=__012f=1.234 ②i=10___f=0.012 ③10___O.012 ④___100.012 注:答案中的_代表一个空格。 【分析】输出语句的格式控制符串中的“i=”、“f=”都是非格式控制符,在输出时必须原样,原位置输出,所以只有备选答案①和②才符合这个要求;格式控制符“%-5d”的格式控制是数据左对齐、宽度为5的整型数据,备选答案①中的数据是右对齐的;此外,该答案中的实数“1.234E-2”应该代表“0.01234”,而不是“1.234”。只有备选答案②符合题意。【答案】② 6 在Turbo C的主屏幕中,将当前编辑的源程序以原名存盘,可以选用___________菜单项,也可以直热键________。 【分析】如果选用“File/Save”菜单项,或者使用热键(f12),当前编辑的源程序将以原来的文件名存盘;如果选用“File /Write to”,当前编辑的源程序将以新的文件名存盘。 【答案】File/Save F2 7 下列各种选择结构的问题中,最适合用if-else语句来解决的是( ) ①控制单个操作做或不做的问题 ②控制两个操作中选取一个操作执行的问题 ③控制三个操作中选取一个操作执行的问题 ④控制10个操作中选取一个操作执行的问题 【分析】if-else语句是专门解决“双分支结构”的,而“双分支结构”的问题就是用单个条件控制从两个操作中选取一个操作来执行的问题。 【答案】② 8 下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:'a'将转换成’B’、…、‘y’将转换成’Z’,其中的’Z’将转换成’A’。请填写程序中所缺少的语句。 main() {char ch ; scanf(”%c”,&ch〕; ch=ch- 32+1; ___________________; printf("%c\n",ch); } 【分析】分析程序库中的“ch=ch- 32+ 1;”语句,可知是将字符型变量 ch中的小写字母转换成对应的大写字母(- 32)的后一个字母(+ l)。如果ch中的字母是' a'、' b'、··,'y',转换结果都不会出错,但是,如果 ch中的字母是'Z',则-32后是大写字母'Z',再+l后将不是大写字母了。为了使其转换成'A',需要用一个单分支结构来实现:如果ch的值等于'Z'+ l,则硬性将 ch的值改成'A'。完成这个任务的语句是一条单分支语句,正是所缺少的语句。 【答案】 if (ch=='Z'+l) h='A'; 9不能正确计算下列分段函数的程序段是_________ |-1 x<0 y=|0 x=0 x>0 ① switch(x< 0)② if(x> 0) {case1:y=-1;break; y=1; case 0:switch(x==0)else {casel:y=0;break;if(x==0) case 0: y= l;y=0 } else } &ny=-l ③ y= l;④ y= l; if(x==0)if(x<0) y=0; y =-l; else else y=- l; if(x== 0) y=0; 【分析】先来分析备选答案①:表达式“x<0”的值只有两种可能性,成立值为1、不成立值为on如果“x<0”的值为 1(即 x< 0),则执行“easel:”后的语句“y=-l”后,退出 switch语句,符合分段函数要求。如果“x<0”的值为0(即x>=0),则执行“case 0:”后的switch语句。该switch语句的表达式是“x==0”,结果也有两种:成立为1、不成立为0.如果“x==0”的值为1(即x=0),则执行“case l:”后的语句“y=0”后,退出 switch语句,符合分段函数要求。如果“x==0”的值为0(即x>0),则执行“case 0:”后的语句“y=1”,也符合分段函数要求。再分析备选答案②:这是标准的用嵌套双分支结构来实现三分支的分段函数,结果显然是能求解分段函数的。分析备选答案③:双分支语句的条件是“x==0”,条件成立时,y值为0,符合分段函数的要求,条件不成立时(包含x>0和x<0两种情况),结果y值为-l,显然不符合分段函数的要求,所以本题要选该答案。至于备选答案④,是能正确计算分段函数的,首先置y为1;接着用双分支结构处理“x<0”和“x>=0”的两种情况:前者使得y值为一l;后者再执行一个单分支结构,如果“x==0”则使y值为0,否则不改变y值,保持y的原值1,符合分段函数的要求。 【答案】③ 10 三种循环语句都能解决循环次数已经确定的次数型循环,其中__________循环语句最适合。 【分析】当“for(表达式 1;表达式 2;表达式 3)语句;”中的表达式1为:整型变量 k=l;表达式 2为:整型变量 k<= n;表达式 3为:整型变量 k++;则这个 for循环就是次数为n次的标准次数型循环结构。 【答案】for 11执行下列程序段后的输出是() x=l; while(x<=3) x++,y=x+++x; printf("%d,%d",x,y); ① 6,10 ②5,8 ③4,6 ④3,4 【分析】我们可以使用逐步记录运行结果的方法来获得输出结果,记录如下: x=1; 进入循环,条件满足执行循环体:计算x+十得x为2,计算y=x+++x,得y为4、x为3; 继续循环,条件满足执行循环体:计算x+十得x为4,计算y=x+++x,得y为8、x为5; 继续循环,条件不满足退出循环; 输出x和y的值为5,8。 【答案】② 12 执行下列程序段,其中的do-while循环一共执行_次。 static int x; do x+=x*x; while (x); 【分析】对静态型变量,不赋初值也有值,对整型变量,其值为 0。执行循环语句 do-while 的循环体,x+=x* x是x=x+(x*

C程序设计经典程序举例

C程序设计经典程序举例 1、判断素数(循环、利用算法减少运算次数) 例:1159:质因数分解 正整数n是两个不同质数的乘积,试求出其中较大的。 #include #include int main() { long long n,big; int small; int root,i,j; scanf("%lld",&n); for(small=2;small<=(int)sqrt(n);) { //素数判断过程,从最小素数开始 root=(int)sqrt(small); for(i=2;i<=root+1;i++) { if(small%i==0)break; } if(i<=root) { if(small==2)small++; else small+=2; //只判断2和奇数,减少运算次数 continue; } if(n%small==0) { big=n/small; root=(int)sqrt(big); for(i=2;i<=root+1;i++) { if(big%i==0)break; } if(i<=root) { if(small==2)small++; else small+=2; continue;

} else { break; //得到最大质因数,跳出循环 } } } printf("%d %lld",small,big); return 0; } 2、递归与回溯算法(解决尝试性问题,每一级都对下一级有影响) 例:1085:0/1迷宫问题 给定一个由0(表示墙壁)和1(表示道路)的迷宫,请你判断进入迷宫后,仅通过横向和纵向的行走是否能从迷宫中走出来,即能否从坐标(1,1)走到(n,m)。 #include #include int starti,startj; int endi,endj; //定义迷宫起止点 int success=0; //用于判断是否成功通路 int main() { int visit(int i,int j,int maze[][10]); int i,j; int n,m; int maze[10][10]; scanf("%d %d",&n,&m); for(i=1;i<=n;i++) for(j=1;j<=m;j++) { scanf("%d",&maze[i][j]); } starti=1,startj=1,endi=n,endj=m; if(visit(starti,startj,maze)==0) {

第八讲:顺序结构程序设计举例

第八讲:顺序结构程序设计举例 所谓的顺序结构就是从头到尾一步步按部就班的执行下去,不会中途出现放弃或者跳转的情况。利用这样的思想实现的程序我们称之为顺序结构程序。在前面学习了许多知识点之后我们就可以开始最基本的顺序结构程序的设计了。 8.1 顺序结构 所谓的顺序结构可以用一个成语形容叫“按部就班”。任何事情都遵循着先做什么,再做什么的思想进行。这样的结构是我们日常生活中最常见的结构。在顺序结构中当一件事情开始后就再也不会停下,直到最后一步完成,整件事情做完为止,中途不会有放弃或者选择性放弃的过程。 8.2 经典算法—数据交换 很多语言的程序设计大多数都是从数据交换这个最经典的算法开始的,所谓的数据交换是将两个同等性质的物质进行对换,例如有两个整数a和b,a = 1,b = 2,在交换之后,使得a = 2,b = 1。 交换的算法是由于变量的性质所决定的,由于变量在同一时刻只能够存储一个数据,因此我们不能直接使用 a = b,b = a的方式对数据进行交换。此时我们就需要想出一些方法,帮助程序实现最正确的交换。 对于任何的数据我们都可以采用“第三变量法”进行交换。所谓的“第三变量法”即借助第三个变量实现对数据的交换,例如对a和b的数据交换,就有: 接下来我们将通过如下示意图对“第三变量法”进行简单的介绍: b

在程序未执行交换前,a = 1,b = 2。在执行交换算法的过程中,首先执行“t = a;”一句,将a中的值1转移到t中暂存,接下来执行“a = b;”一句,将b之中的值2存放到变量a中,a中原先的1被覆盖;最后执行“b = t;”一句,将t中所暂存的原先a的值1存放到变量b中,b中原有的2被覆盖。此时 a = 2,b = 1,t = 1。 当然,读者也可以使用先暂存b的方式对a和b之中的数据进行交换。下面给出该案例的完整代码: [例] 使用“第三变量法”交换a和b之中的数据。 当然对于一些数值型的数据(所谓的数值型数据是指单纯的数字或者ASCII 码),我们也可以直接采用“算数交换法”进行交换。所谓的算数交换法是指利用数值型数据可进行算术运算的特性进行交换。以上例a与b的值交换为例,则有: 假设a = 1,b = 2。首先执行“a = a + b;”,此时a = a + b = 1 +2 = 3,而b = 2;

选择结构程序设计

第四章择路而行---选择结构程序设计 第一节路口诀择----条件语句 一、教学目标 1、掌握选择结构程序中常用的Qbasic语句。 2、掌握选择结构程序设计方法。 3、能利用选择结构程序设计解决简单的实际问题。 二、教学重点: 1.选择结构的语句及功能 2.选择结构中程序设计方法。 三、教学方法:讲授法,对比法,分组讨论法。 四、教学时间:2课时 五、教学教程: (一)引入新课:前面我们学习了顺序结构程序设计,利用顺序结构只能设计一些较简单的程序,如果要处理复杂的问题,就需要采用另外两种基本结构:选择结构和循环结构。选择结构,是一种常用的主要基本结构,是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特性是:无论分支多寡,必择其一;纵然分支众多,仅选其一。 (二)讲述新课 l 单行条件选择语句IF 1、单行结构条件语句IF…THEN…ELSE 格式:IF <条件> THEN <语句1> [ELSE <语句2>] 功能:最简单的条件选择语句,用来进行条件判断,使语句有条件的执行。 说明: 1)当<条件>为真(非零数)时,则执行<语句1>。 2)ELSE语句可以省略。 3)当<条件>为假(零)时,而且语句中有ELSE语句则执行<语句2>。 4)IF、THEN、ELSE必须在同一行上。 2、示例A、输入x的值,计算y的值。 REM 程序名为:eg1.bas INPUT “请输入x的值:”,x IF x>=0 THEN Y=1+X ELSE Y=1-2*X PRINT "Y=";Y END 例:求一元二次方程Ax2+Bx+C=0(A<>0)的实数根。 分析:写写出程序的流程图,参考流程图来写程序。 程序清单如下: INPUT A,B,C D=B*B-4*A*C IF D<0 THEN then X1=(-B+SQR(D))/(2*A) X2=(-B-SQR(D))/(2*A) PRINT “X1=”;X1, “X2=”;X2 ELSE PRINT “此方程无实根” END

c编程实例100例

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码:main(){int i,j,k;printf("\n"... 经典c程序100例2010-03-20 15:47 | (分类:默认分类) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); 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("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*;bonus2=bonus1+100000*; bonus4=bonus2+200000*; bonus6=bonus4+200000*; bonus10=bonus6+400000*;

C语言程序设计个经典例子

C语言程序设计个经典 例子 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

经典C语言程序设计100例1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题 23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色 33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数 37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序 40.将一个数组逆序输出

41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法 45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 & 52.学习使用按位或 | 53.学习使用按位异或 ^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形 59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题 69.圆圈报数问题70.计算一个字符串长度 71.编写输入/输出函数72.创建链表 73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n 77.填空练习(指向指针的指针) 78.找到年龄最大的人79.字符串排序 80.海滩猴子分桃 81.已知公式条件求数字 82.八进制转换为十进制 83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数

03实验三 顺序结构程序设计_答案

湖北工业大学实验报告 课程名称:C语言程序设计实验内容实验三顺序结构程序设计 学院:工程技术学院专业班级: 姓名:学号:教师:成绩: 一、实验目的 1、掌握赋值语句、表达式语句、函数调用语句、复合语句、空语句的使用方法。 2、掌握输入、输出函数的格式及格式符的使用。掌握文件包含预处理命令的使用方法。 3、掌握数据的输入、存储、输出之间的关系。 4、掌握顺序程序设计的逻辑结构,掌握数据结构的功能。 二、预习作业 1、程序填空题:试在括号中填入正确的答案,并上机验证程序的正确性。(1) 输入大写字符A,则输出为( )。(文件名:ex3_1.c) (#include ) main( ) { ( char ch,chr; ) chr=(ch= getchar( )) main( ) { ( long int) a =80000 , b = 60000, c, d; ( c) = ( a - b ,a + b ); ( d) = (a + b,a - b); printf(“%ld ,%ld\n”, c, d); }

2、程序改错并上机调试运行 (1)更改下列程序中的位运算符和逻辑运算符,能使变量d、e输出的结果为零。 (文件名:ex3_3.c) #include main( ) { int a = 8, b = 2,c = 3,d,e; /********** found **********/ d = (a % c & ^ a % c); e = a / c - b || && c + + ; printf (“%d, %d\n”, d, e); } (2) 查找改程序中的错误,并修改正确。(文件名:ex3_4.c) #include main( ) { int a = 4, b = 6, c= 3; /********** found **********/ a = a + b = b + c ; b = a < b ?a :b < c ?b :c printf(“%d,%d\n”, a, b); } 3、读程序写结果并上机验证其正确性 (1) 变量 a,b,c,d如下,将变量a以各种格式输出并输出表达式c+a,d – 32的值。(文件名:ex3_5.c) #include main( ) 结果为:(-1,4294967295,37777777777,ffffffff ) { int a = - 1 , b = 2 ; C,B char c = …D?,d = …b?; b = b + c;//??? printf (“%d, %u,%o,%x \n ”,a,a,a,a ); printf (“%c,%c \n ”,c + a, d - 32); } (2) 运行程序后输入”a空格b空格c回车”后,输出结果是(a ,b )。(文件

C语言程序设计100个经典例子

经典C语言程序设计100例 1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数 13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数 18.求s=a+aa+aaa+aa...a的值19.求解"完数" 20.球体自由落下物理问题 21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和 25.求1+2!+3!+...+20!的和26.利用递归方法求5! 27.将输入字符以相反顺序打印28.岁数问题 29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色 33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数37.对10个数进行排序 38.求3*3矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出 41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法 45.使用register定义变量方法46.宏#define命令练习(1) 47.宏#define命令练习(2) 48.宏#define命令练习(3) 49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与& 52.学习使用按位或| 53.学习使用按位异或^ 54.取一个整数从右端开始的4~7位。55.学习使用按位取反~ 56.用circle画圆形 57.学用line画直线58.用rectangle画方形59.画图综合例子60.画图综合例子2 61.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse 64.利用ellipse and rectangle画图 65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出 68.多个整数后移位置问题 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实验目的与要求 1.学会正确使用逻辑运算符和逻辑表达式的方法。 2.掌握程序的书写风格; 3.熟练掌握if语句的使用; 4.熟练掌握switch语句的使用。 1.2 实验内容 1.2.1 典型例题分析 【例1.1】编程实现,判别从键盘输入的一个字符是控制字符、数字、大写字母和小写字母中的哪一种。例如输入为“g”,则输出显示它为小写字符。 分析:可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。在字符“0”和“9”之间的为数字,在字符“A”和“Z”之间为大写字母,在字符“a”和“z”之间为小写字母,其余则为其它字符。这是一个多分支选择的问题,所以用if-else-if语句编程,根据输入字符ASCII码所在的范围,分别给出不同的输出。 源程序代码: #include"stdio.h" main() { char c; printf("input a character: "); c=getchar(); if(c<32) //判断输入字符的ASCII值是否小于32 printf("This is a control character\n"); else if(c>='0'&&c<='9') //判断输入的字符是否在字符“0”和“9”之间 printf("This is a digit\n"); else if(c>='A'&&c<='Z') //判断输入的字符在字符“A”和“Z”之间 printf("This is a capital letter\n"); else if(c>='a'&&c<='z') //判断输入的字符在字符“a”和“z”之间 printf("This is a small letter\n"); else //判断输入的字符是否其它字符 printf("This is an other character\n"); } 程序运行结果:

vf程序设计实例

(一)输入n的值,求1+1/2!+1/3!+1/4!+….+1/n! (阶乘n!=1*2*3*4....*(n-1)*n ) CLEAR SUM=0 MUL=1 INPUT "请输入n的值: " TO N FOR i=1 TO N FOR j=1 TO i MUL=MUL*J ENDFOR SUM= SUM+1/MUL ENDFOR ?'求得的总和为: ',SUM (二)输入10 个数,将它们按照从大到小的顺序排列。 clear dime a(10) ?'输入10个数: ' for i=1 to 10 input "请输入: " to a(i) endfor for i=1 to 9 for j=1 to i if a(j)>a(i+1) t=a(i+1) a(i+1)=a(j) a(j)=t endif endfor endfor list memo like a

(三)随机出10道100以内的整数加减法算数题 clear ts=1 do whie ts<=10 czf=iif(rand()>0.5,"+","-") num1=rand()*100 num2=rand()*100   if =czf="+"   if num1+num2>100     loop   else     if num1<num2       loop     endif   endif ?"("+str (ts,2)+")"+”“+str (num1,2)+czf+str(nu m2,2)+"=” ts=ts+1 enddo (四)计算1,1/2,1/3...1/n之和,当<0.001时停止 set decimal +0 2 n=1 nsum=0 do while .t. if 1/n <0.001   exit endif nsum=nsum+2 n=n+1 enddo wait windows "该系统之和为"+ [NextPage] (五)计算生肖自定义函数sx()

顺序结构程序设计

第四章顺序结构程序设计 (4学时) 一、教学目的及要求 要求学生了解结构化程序设计的基本思想、算法的表示方法,熟练掌握C 语言语句、格式输入/输出函数、字符输入/输出函数。 二、教学重点及难点 重点:结构化程序设计的基本思想,输入/输出函数的使用方法。 难点:流程图的绘制。 三、教学手段 板书与多媒体课件演示相结合 四、教学方法 启发式教学、讲解、演示 五、作业 1、P88页:4.3、4.4、4.6、4.8、4.9 2、习题册本章练习。 六、参考资料 1、谭浩强、张基温、唐永炎主编《C语言程序设计教程》,第三章 2、杨非主编《C语言程序设计应试辅导—二级》,第三章 七、教学内容与教学设计

上节课我们介绍了几种常用的基本数据类型,以及不同数据类型的相互转换,变量赋初值。 这节课我们继续介绍几种常用的运算符以及表达式。形式回顾类型转换的两种类型 【讲授新课】 一、算法与结构化程序设计 1 、算法 例:求长方形的面积。 算法指解决一件事情的方法和步骤,怎样表示一个算法?用流程图表示算法。 流程图表示算法,直观形象,易于理解。 流程图中常用符号的含义如下: 例如将求长方形的面积的算法用流程图表示。讲解 [板书] [幻灯片] [重点] 算法在程序设计中的地位及表示 [板书] [幻灯片] [重点] [难点] [课堂设计]请同学回答,通过例题加强对

二、程序基本结构 1. 顺序结构: 2. 选择结构: 3. 循环结构概念的理解。[重点] [幻灯片] [重点] [课堂设计]利用生活中的例子,如跑步、走路等解释不

3.1.4 结构化程序设计方法 ● 自顶向下; ● 逐步细化; ● 模块化设计; ● 结构化编码。 C程序的结构: 源程序文件1预处理命令全局变量声明函数首部局部变量声明执行语句 函数体 函数1函数n 源程序文件2源程序文件n C程序 三、顺序结构程序设计 1.顺序执行语句概述 C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。 C 语句可分为以下五类: 1. 表达式语句:表达式语句由表达式加上分号“;”组成。 同结构的表示方法。 [幻灯片] [重点]

数控车床编程实例详解(30个例子)

半径编程 图3.1.1 半径编程 %3110 (主程序程序名) N1 G92 X16 Z1 (设立坐标系,定义对刀点的位置) N2 G37 G00 Z0 M03 (移到子程序起点处、主轴正转) N3 M98 P0003 L6 (调用子程序,并循环6次) N4 G00 X16 Z1 (返回对刀点) N5 G36 (取消半径编程) N6 M05 (主轴停) N7 M30 (主程序结束并复位) %0003 (子程序名) N1 G01 U-12 F100 (进刀到切削起点处,注意留下后面切削的余量)N2 G03 U7.385 W-4.923 R8(加工R8园弧段) N3 U3.215 W-39.877 R60 (加工R60园弧段) N4 G02 U1.4 W-28.636 R40(加工切R40园弧段) N5 G00 U4 (离开已加工表面) N6 W73.436 (回到循环起点Z轴处) N7 G01 U-4.8 F100 (调整每次循环的切削量) N8 M99 (子程序结束,并回到主程序)

直线插补指令编程 图3.3.5 G01编程实例 %3305 N1 G92 X100 Z10 (设立坐标系,定义对刀点的位置) N2 G00 X16 Z2 M03 (移到倒角延长线,Z轴2mm处) N3 G01 U10 W-5 F300 (倒3×45°角) N4 Z-48 (加工Φ26外圆) N5 U34 W-10 (切第一段锥) N6 U20 Z-73 (切第二段锥) N7 X90 (退刀) N8 G00 X100 Z10 (回对刀点) N9 M05 (主轴停) N10 M30 (主程序结束并复位) 车床编程实例三 圆弧插补指令编程 %3308 N1 G92 X40 Z5 (设立坐标系,定义对刀点的位置) N2 M03 S400 (主轴以400r/min旋转) N3 G00 X0 (到达工件中心) N4 G01 Z0 F60 (工进接触工件毛坯) N5 G03 U24 W-24 R15 (加工R15圆弧段) N6 G02 X26 Z-31 R5 (加工R5圆弧段) N7 G01 Z-40 (加工Φ26外圆) N8 X40 Z5 (回对刀点) N9 M30 (主轴停、主程序结束并复位 图3.3.8 G02/G03编程实例

顺序结构程序设计练习题

C语言练习题总汇 一、单选题: 【顺序结构程序设计】 1.己知int k,m=1;执行语句k=-m++;后k的值是(A )。(提示:负号与自加运算符同级,结合方向从右向左)A)-1 B) 0 C)1 D)2 2.若有定义int x=4;则执行语句x + = x * = x + 1;后,x的值为(C )。 A)5 B)20 C)40 D)无答案 3.若有定义:float a=3.0,b=4.0,c=5.0;则表达式1/2*(a+b+c)的值为(C )。 A)6.0 B)6 C)0.0 D)无答案 4.以下程序段的输出结果是(C )。(提示:a当约束过严时,约束失效。按自由格式输出。) int a=1234; printf("%2d\n",a); A)12 B)34 C)1234 D)提示出错,无结果 5.下列程序段的输出结果是(C)。 int a=1234; float b=123.456; double c=12345.54321; printf("%2d,%3.2f,%4.1f",a,b,c); A)无输出B)12, 123.46, 12345.5 C)1234,123.46,12345.5 D)1234,123.45, 1234.5 6.设x, y均为整型变量,且x=8, y=5,则以下语句的输出结果是(D)。 printf("%d,%d\n",x--,++y); A)8,5 B)7,5 C) 7,6 D) 8,6 7.以下程序的输出结果是(A )。 int main() {int a=20,b=10; printf("%d,%%d\n",a+b,a-b);} A) 30,%d B)30,10 C)30,%10 D)以上答案均不正确(%%d中第一个%后面的表示字符)8.下列程序的运行结果是(A)。 int main() {float x=2.5; int y; y=(int)x; printf("x=%f,y=%d",x,y);} A) x=2.500000,y=2 B)x=2.5,y=2 C)x=2,y=2 D) x=2.500000,y=2.000000 9.以下程序的输出结果是(A)。 int main() {char c=‘z’; printf("%c",c-25);} A)a B)z C)z-25 D)y (字母共有26个,而z是最后一个) 10.下面程序的输出结果是(C)。 int main( ) { double d=3.2 ; int x=1.2, y ; y=(x+3.8)/5.0 ; printf("%d\n",d*y);} A) 3 B) 3.2 C)0 D) 3.07 11.下面程序的输出结果是( C )。(提示:输出时无定界符)

课程序设计实例

长治学院 课程设计报告 课程名称:DELPHI原理及应用课程设计 设计题目:人口普查系统 系别:计算机系 专业:计算机科学与技术 学生姓名: 刘汉一学号: 起止日期:2008年2月26 日~2008年3月14 日指导教师:孙俊杰

长治学院

人口普查系统 目录 第一章需求分析-----------------------------------------------------------1 第二章开发过程-----------------------------------------------------------2 2.1系统目标----------------------------------------------------------------------3 2.2合理的设计数据库----------------------------------------------------------4 2.3设计出友好的界面----------------------------------------------------------4 2.4实现基本功能和和一些特殊的功能-------------------------------------4 2.5功能划分----------------------------------------------------------------------5 2.6系统功能分析----------------------------------------------------------------5第三章详细设计----------------------------------------6 3.1系统设计方法-------------------------------------------7 3.2数据库设计---------------------------------------------7 3.3系统结构设计-------------------------------------------7 3.4系统界面设计-------------------------------------------7 第四章调试与操作说明----------------------------------7 第五章课程设计与体会-----------------------------------8 致谢 参考文献

第四节 选择结构程序设计

第四节选择结构程序设计 4.1 选择程序设计举例 在编写程序中,往往要求根据某个指定的条件是否满足来决定执行的内容?例如,购物在1000元以下的打九五折,1000元及以上的打九折?C++提供if语句来实现这种条件选择?如 if amount<1000 tax=0.95; //amount代表购物总额,tax代表折扣else tax=0.9; //若amount<1000,条件满足,tax=0.95,否则tax=0.9 pay=amount*tax; //pay为实付款 流程可以用图4.1表示? 图4.1 4.2 选择结构和if语句 if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一? 4.2.1 if语句的3种形式 1. if(表达式)语句 例如:

if(x>y) cout<y) cout<500) cost=0.15; else if(number>300) cost=0.10;

else if(number>100) cost=0.075; else if(number>50) cost=0.05; else cost=0; 图4.3 说明: (1) 从图4.2和图4.3可以看到: 3种形式的if语句都是由一个入口进来,经过对“表达式”的判断,分别执行相应的语句,最后归到一个共同的出口?这种形式的程序结构称为选择结构?在C++中if语句是实现选择结构主要的语句? (2) 3种形式的if语句中在if后面都有一个用括号括起来的表达式,它是程序编写者要求程序判断的“条件”,一般是逻辑表达式或关系表达式? (3) 第2?第3种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号?

相关文档
最新文档