C语言例题Word格式文档下载.docx
- 文档编号:7195467
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:25
- 大小:66.36KB
C语言例题Word格式文档下载.docx
《C语言例题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言例题Word格式文档下载.docx(25页珍藏版)》请在冰点文库上搜索。
c(关系运算符的优先级高于赋值运算符)
6、逻辑运算符
逻辑与a&
b如果a和b都为真,则结果为真,否则为假;
||逻辑或a||b如果a和b一个以上为真,则结果为真,二者都为假,结果为假;
!
逻辑非!
a如果a为假,则!
a为真,如果a为真,则!
a为假。
7、break和continue语句作用
break语句是使流程跳到循环体之外,接着执行循环体下面的语句。
break语句只能用于循环语句和switch语句之中,二不能单独使用。
continue语句是结束本次循环,即跳过循环体中尚未执行的语句,转到循环体结束之前,接着执行for循环语句中的“表达式3”,然后进行下一次是否执行循环体的判定。
区别:
continue语句只是结束本次循环,而不是终止整个循环的执行,而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
8、字符串数组
1)注意“\0”的用法。
2)使用字符串数组。
1puts函数:
puts(字符数组名)如:
puts(str);
2gets函数:
gets(字符数组名)如:
gets(str);
puts和gets函数只能放一个字符串数组,不能puts(str1,str2);
3streat函数——字符串数组连接函数:
streat(字符数组1,字符数组2);
4strcpy函数——字符串赋值函数:
strcpy(字符串数组1,字符串数组2);
5strcmp函数——字符串比较函数:
strcmp(字符串数组1,字符串数组2);
这个函数比较重要,C里面用的比较多,其比较规则是:
两个字符串自左向右逐个字符相比较,直到出现不同的字符或者遇到“\0”为止。
(不知道你们这一块怎么学的,我们那时候没大讲,或许是我没大听)。
二、例题
1、从键盘输入一个大写字母,在显示屏幕上输出该字母的小写字母.(提示:
getcharputchar)
#include<
stdio.h>
intmain()
{
charc1,c2;
c1=getchar();
c2=c1+32;
putchar(c2);
//或者printf(“大写字母:
%c\n小写字母:
%c\n”,c1,c2);
putchar(‘\n’);
return0;
}
2、switch语句P102
按要求输出等级百分制分数段,A等为85分以上,B等为70~84,C等为60~69,D等为60分一下,分数由键盘输入。
#include<
chargrade;
scanf(“%c”,&
grade);
printf(“Yourscoreis:
”);
switch(grade)
{
case‘A’:
printf(“85~100\n”);
break;
case‘B’:
printf(“70~84\n”);
case‘C’:
printf(“60~69\n”);
case‘D’:
printf(“<
60\n”);
default:
printf(“Enterdataerror!
\n”);
}
弄懂switch语句的结构,注意格式,多看看课本上的说明
3、选择结构程序
写一个程序,判断某一年是否是闰年。
(leap=1是闰年,leap=0非闰年)。
1画流程框图
2编写程序代码
intmain()
intyear,leap;
printf(“enteryear:
scanf(“%d\n”,&
year);
if(year%4==0)
{
if(year%100==0)
if(year%400==0)
leap=1;
else
leap=0;
leap=1;
leap=0;
if(leap)
printf(“%dis”,year);
printf(“%disnot”,year);
printf(“aleapyear.\n”);
return0;
仔细想想if和else的嵌套关系,如果写判断是否是闰年的问题,建议用函数写,简单。
类似的还有习题P112T3、T6、T7(试着写一下这几个题)。
数学中:
1≦x≦3,而在C中,要这样:
1<
=x&
x<
=3。
要注意格式写的时候很容易写错。
4、do……while类型
执行过程:
先无条件的执行循环体,然后判断循环条件是否成立,与while型相反。
所以do……while型无论如何至少执行一次循环。
inti=1;
//设变量i的初值为1
do
printf(“%d\n”,i++);
}while(i<
=100);
//当i小于或者等于100时,继续执行循环体,注意while后的分号,不要忘了。
例:
用do……while计算1+2+3+4+…+100的和。
(先画图)
intmain()
inti=1,sum=0;
sum=sum+i;
i++;
}while(i<
printf(“sum=%d\n”,sum);
5、for循环语句
for(表达式1;
表达式2;
表达式3)
语句
表达式1:
设置初始条件,只执行一次。
可以设置零个,一个多个。
表达式2:
循环条件表达式,用来判定是否继续循环。
在每次执行循环体前先执行此表达式。
表达式3:
作为循环调整,例如使循环变量增值,它是在执行完循环体后才执行的。
例题可以把例题4改编。
6、输出4*5矩阵(利用循环嵌套来解决)//说实话这个程序我不明白什么意思
12345
246810
3691215
48121620
#include<
inti,j,n=0;
for(i=1;
i<
=4;
i++)
for(j=1;
j<
=5;
j++,n++)
{
if(n%5==0)
{
printf(“\n”);
//这四行的意思是让这些数每五个换行
}
printf(“%d\t”,i*j);
}
}
printf(“\n”);
return0;
7、利用数组处理批量数据
形式为:
类型符数组名[常量表达式];
说明:
1)方括号里要指定数组长度(常量表达式)。
2)注意,数组下标是从0开始的,例如指定数组a[3],则着3个数分别是a[0]、a[1]、a[2],不存在a[3]元素。
3)常量表达式中可以包括常量和符号常量,如:
“inta[3+5];
”,不能包含变量,如:
“a[n]”,是不合法的。
数组的初始化:
在定义数组时可以对数组全部赋予初值,例如inta[3]={1,4,68};
;
也可以只给部分赋初值,系统会自动给后面的元素赋初值0,例如inta[4]={2,4};
也可不指定数组长度,如inta[4]={1,4,6,7};
也可以写成inta[]={1,4,6,7};
例1:
对10个数组元素依次赋值0~9,要求逆序输出这10个元素。
#include<
inti,a[10];
for(i=0;
=9;
a[i]=i;
for(i=9;
i>
=0;
i--)
printf("
%d"
a[i]);
printf("
\n"
);
例2:
(冒泡法排序)任意输入10个数,按照从小到大的顺序输出。
inti,j,t;
printf(“Pleaseinput10numbers:
for(i<
0;
10;
scanf(“%d”,&
a[i]);
printf(“\n”);
for(j=0;
9;
j++)
9-j;
if(a[i]>
a[i+1])
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
printf(“Thesortednumbers:
for(i=0;
printf(“%d”,a[i]);
二维数组:
定义类型说明符数组名[常量表达式][常量表达式];
如:
floata[3][5];
二维数组与一维数组类似,注意的地方参照一维数组。
例3:
将一个二维数组行和列的元素互换,存到另一个二维数组中。
(这个是我们去年的考试题)
inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf(“arraya:
for(i=0;
=1;
for(j=0;
=2;
printf(“%5d”,a[i][j]);
//输出a数组
b[j]][i]=a[i]][j];
//将a数组的元素赋值给b数组
printf(“\n”);
printf(“arrayb:
i++)//输出b数组
printf(“%5d”,b[i][j]);
例4:
(打擂台算法)有一个3X3矩阵,要求编写程序,输出矩阵中的最大值。
(书上是3X4矩阵,会一个,不管几X几矩阵就都会了)
voidmain()
intnum[3][3],row,col,i,j,max;
row=0;
col=0;
max=num[0][0];
请输入九个数:
"
3;
for(j=0;
scanf("
&
num[i][j]);
//存储输入的数据
printf("
%d"
num[i][j]);
//输出输入的数据,可以不要
//printf("
if(num[i][j]>
max)
max=num[i][j];
//重点,这个地方是找数组中的最大值
row=i;
col=j;
max=%d\nrow=%d,col=%d\n"
max,row,col);
//输出最大及行列
例5:
输入10个数,然后随意输入一个数查找是否存在此数。
#include<
intnum[10],i;
请输入十个数:
num[i]);
//存储输入的10个数
%d\n"
num[i]);
//打印出输入的10个数
intnum1;
请输入要查找的数:
scanf("
num1);
if(num[i]-num1==0)//查找某个数
if(i>
9)
没有找到该数!
else
在数组中第%d个位置找到了要查找的数%d\n"
i+1,num1);
例6:
定义一个长度为5的数组,输入数并存储,然后在输入一个数,要求这个数插在原数组中,顺序重新排列。
intnum[6],i;
请输入5个数:
5;
intn,j;
请输入要插入的数:
n);
if(n<
num[i])
for(j=5;
j>
i;
j--)
num[j]=num[j-1];
num[i]=n;
6;
8、用函数实现模块化程序设计。
1)定义函数:
A.定义无参函数
类型名函数名()
函数体
B.定义有参函数
类型名函数名(形式参数表列)
函数体
例如:
intmax(intx,inty)
{
intz;
z=x>
y?
x:
y;
//这句的意思是x和y中大的值赋给z.
return(z);
}
C.定义空函数
类型名函数名()
2)例1:
编写一个函数,要求输入两个数,输出较大的那个数值。
//先编写max函数:
intmax(intx,inty)
intz;
z=x>
return(z);
//再编写主函数:
#include<
intmain()
intmax(inta,intb);
//声明max函数
inta,b,c;
printf(“Pleaseinputtowintegernumbers:
scanf(“%d,%d”,&
a,&
b);
c=max(a,b);
printf(“maxis%d\n”,c);
3)例:
2:
输入两个数,求和,用函数。
(浮点型)
参照例1自己写一下,基本上一样了。
4)例3:
用函数来判断某一年是否是闰年。
#include<
voidrunnian(int);
//声明函数
intyear;
printf("
请输入年份"
scanf("
runnian(year);
//括号里须是前面输入的年份
voidrunnian(inty)
if((y%4!
=0&
y%100!
=0)||(y%400!
=0))//判断是否是闰年
printf("
%d是闰年\n"
y);
}else
%d是平年\n"
5)例4:
输入两个数,用函数来求和。
//主体
#include<
intmain()
floatadd(floatx,floaty);
floata,b,c;
printf(“Pleaseentertwonumbers:
scanf(“%f,%f”,&
//是%f不是%d,数据类型换了
c=add(a,b);
printf(“sumis%d\n”,c);
return0;
//函数部分
floatadd(floatx,floaty)
floatz;
z=x+y;
return(z);
6)例5:
输入十个数,要求用函数输出其中最大的值和该数是第几个。
(考察点:
函数数组)
intmax(intx,inty);
inta[10],m,n,i;
printf(“Pleaseenter10numbers:
for(i=0;
scanf(“%d”,&
a[10]);
for(i=1,m=a[0],n=0;
i++;
)
if(max(m,a[i])>
m)
m=max(m,a[i]);
n=i;
printf(“Thelargestnumberis%d\nitisthe%dthnumber\n”,m,n+1);
return(x>
y);
7)例6:
(选择法)对数组中的10个数排序。
(函数)
voidsort(intarray[],intn);
inta[10],i;
printf(“Pleaseenterarray:
I<
array[i]);
sort(a,10);
printf(“Thesortedarray:
printf(“%d”,a[i]);
//函数部分
voidsort(intarray[],intn)
inti,j,k,t;
n-1;
k=i;
for(j=i+1;
n;
if(array[j]<
array[k])
k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
8)例7:
有一个3×
4矩阵,求所有元素中的最大值。
(前面那个打擂台算法的题一样,就是换了种形式)
intmax_value(intarray[][4]);
//二维数组函数
inta[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
//数组初始化
printf(“Maxvalueis%d\n”,max_value):
//直接把函数写到输出了
intmax_value(intarray[][4])
inti,j,max;
max=array[0][0];
4;
if(array[i][j]>
max=array[i][j];
return0;
问题:
如果这个程序要体现其可持续发展性(二维数组不是直接赋值,而是键盘敲入),那么这个程序该怎么改?
编者的话
本复习资料都是本人亲手整理的,程序代码都是一个一个字母敲入的,希望使用者认真领悟复习。
程序没有很详细的讲解,自己多领悟吧,掺杂着很多小的知识
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 例题