版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章C语言概述
一、简答题
1.(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;
(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言
允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接
访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C语言写的程序可移植性
好,基本上不作修改就能用于各种型号的计算机和各种操作系统。
2.顺序结构,分支结构,循环结构
3.所谓算法就是为解决一个问题而采取的方法和步骤。
算法的特性:有穷性、确定性、输入、输出、可行性。
表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表
示;(4)用伪代码表示;(5)用计算机语言表示。
1.瓶子A里盛有醋
瓶子B里盛有酱油
有一个空瓶C
将A中的醋倒入C
将B中的酱油倒入A
将C中的醋倒入B
2.输入一个数放在a中
max=a
以下步骤重复9次:
输入一个数放在a中
如果a〉max,max=a
打印max的值
3.如果a<b
temp二a
a=b
b=temp
如果c>a
temp=a
a=c
c二temp
否则
如果c>b
temp二b
b=c
c=temp
打印a,b,c的值
4.i=l
sum=O
以下程序循环100遍:
sum=sum+i
i=i+l
打印sum的值
5.如果(n除以3的余数为0并且n除以5的余数为0)
n能够同时被3和5整除
否则
n不能够同时被3和5整除
6.i=101
以下语句循环50遍:
F2
flag=l
当八(i除以2的整数部分)时循环以下语句:
如果i除以j的余数为零
flag=0
退出该循环
如果flag-l
打印i的值
i=i+2
7.如果水n
temp二m
m=n
n=temp
i=n
做以下循环,直到m,n能够被i整除:
如果m能够被i整除并且n能够被i整除
i即是m和n的最大公约数
跳出循环
否则
i=i-l
打印i的值
8.data=b*b—4*a*c
如果data>0
否则如果data=0
xl=x2=—b/2
否则
无实数解
三、编程题
1.main()
(
printf();
printf(uHowdoyoudo?\n");
printf();
)
2.main()
inta,b,c;
scanf(u%d%d%d",&a,&b,&c);
printf("sum=%d”,a+b+c);
)
第二章数据类型与表达式
一、单项选择题
1.B2,C3.A4.A5.D6.B7.A8.C9.D
二、写出下列程序的运行结果
1.
aabbccabc
AN
2.
ab
9798
3.9,11,9,10
4.
a=2,b=3,c=2
5.
sl=2.500000
s2=3
三、编程题
main()
(
charcl=,c,c2=,h',c3=,i*,c4=,n',c5='a,;
cl=cl+4;
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c5+4;
printf(,z%c%c%c%c%c\nz/,cl,c2,c3,c4,c5);
)
第三章顺序程序设计
选择题
1)B2)D3)D4)A5)A6)B7)B8)A9)
D10)C11)D12)A
填空题
1)b2)2613)2521374)abc5)5.0,4,c=36)3
编程题
^definePI3.1415926
main()
(
floath,r,1,sv,sz;
printf(“请输入圆的半径r,圆柱高h:\n");
scanf(a%f,%fw,&r,&h);
1=2*PI*r;
s=PI*r*r;
sv=3.0/4.0*PI*r*r*r;
sz=PI*r*r*h;
printf(“圆周长为:1=%6.2f,圆面积为:s=%6.2f\n,>,1,s);
printf(“求体积为:sv=%6.2f,圆柱体积为:sz=%6.2f\n",sv,sz)
}
2、
main()
(
floatc,f;
printf(“请输入一个华氏温度:\n");
scanf("%f",&f);
c=5.0/9.0*(f-32);
printf(“摄氏温度为:%6.2f\n",c);
)
第四章循环程序设计
一、选择题
1.D2.D3.D4.C5.D6.A7.B8.B9.A10.D.11.B12.A13.B14.C15.C16.A17.A18.B19.D
20.D21.A
二、填空题
1.585858
2.0
3.18
4.8921
5.20,0
6.6
7.1,3,2
8.Year%400==0
year%100!=0
count++
三、编程题
1.
main()
(
longa;
scanf(“%ld”,&a);
if(a>=10000&&a<=99999)
printf(“这是个五位数”);
elseif(a>=1000&&a〈=9999)
printf(“这是个四位数”);
elseif(a>=100&&a<=999)
printf(“这是个三位数”);
elseif(a>=10&&a<=99)
printf(“这是个二位数”);
elseif(a>=0&&a<=9)
printf(“这是个一位数”);
else
printf(“输入错误”);
}
3.
main()
(
inta;
intg,s,b;〃个位、十位、百位
printf("水仙花数有:\n〃);
for(a=100;i<=999;a++)
{g=a%10;
s=a/10%10;
b=a/100;
if(a==g*g*g+s*s*s+b*b*b)
printf(z/%d”,a);
}
printf(〃\n");
)
4、
mainO
{inti,n;
printf("inputn:〃);
scanf(〃%d〃,&n);
printf(〃\n%d=〃,n);
for(i=2;i<=n;i++)
{while(i!=n)
if(n%i=O)
{printf(,z%d*/z,i);n/=i;}
elsebreak;
}
printf(〃%d\n〃,n);
)
5、
#include"stdio.h"
mainO
(
charc;
intw,x,y,z;
w=x=y=z=0;
while((c=getchar())!=,\n')
(
if((c>,a'&&c<rz')||(c>rA,&&c<JZ'))
w++;
elseif(c==,J)
x++;
elseif(c>‘O'&&«'9')
y++;
elsez++;
)
printf("英文字母个数:%d\n",w);
printf("空格个数:%d\n",x);
printf("数字个数:%d\n",y);
printf("其他字母个数:%d\n",z);
)
6、main()
(
floath=100,t=100;
intj;
for(j=l;j<10;j++)
(
t=t/2;
h=h+t*2;
}
printf("共经过:%f米\n",h);
printf("第十次反弹%f米\n",t/2);
}
第五章数组
一、单项选择题
1.B2.A3.C4.C5.D6.B7.C8.B9.C10.B
二、写出下列程序的运行结果
1.S=368
2.
3.Sl=18
S2=10
4.!margorP
5.
数字0的出现次数是:3
数字1的出现次数是:2
数字2的出现次数是:2
数字3的出现次数是:2
数字4的出现次数是:0
数字5的出现次数是:1
数字6的出现次数是:1
数字7的出现次数是:1
数字8的出现次数是:1
数字9的出现次数是:1
三、编程题
1.ttinclude"stdio.h〃
main()
{inta[ll];
inti,j,t;
printf("input10number:\n,z);
for(i=l;i<ll;i++)
scanf&a[i]);
printf(〃\n");
for(i=l;i<=9;i++)
for(j=l;j<=10-i;j++)
if(a[j]<a[j+l])
{t=a[j];a[j]=a[j+l];a[j+l]=t;}
printf(,zthesortednumberis:\n〃);
for(i=l;i<ll;i++)
printf(/z%4d,z,a[i]);
2.#include"stdio.h〃
main()
{inta[ll],i,b;
printf(,zimput10sortednumber:\n,z);
for(i=0;i<10;i++)
scanf(〃%d〃,;
printf(,zinputaninteger:\nz,);
scanf("%d",&b);
for(i=9;i>=0&&a[i]>b;i~)
a[i+l]=a[i];
a[i+l]=b;
printf(,zsortednumbers:\n〃);
for(i=0;i<ll;i++)
printfa[i]);
3.#include"stdio.h〃
mainO
{inta[5],i,j,t;
printf("input5integer:\n,z);
for(i=0;i<5;i++)/*输入5个整数*/
scanf(绘d〃,&a[i]);
for(i=0,j=4;i<j;i++,j—)/*逆序存放*/
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<5;i++)/*逆序存放后重新输出*/
printf("%5d〃,a[i]);
4.#include"stdio.h〃
main()
{inti,j,a[10][10]={{l},{1,1}};
for(i=2;i<10;i++)/*给二维数组每个元素赋值*/
{a[i][0]=l;
for(j=l;j<=i;j++)
a[i][j]=a[i-l][j-l]+a[i-l][j];
for(i=0;i<10;i++)/*输出二维数组*/
{for(j=O;j<=i;j++)
printf(〃%-5d”,a[i][j]);
printf(〃\n");
)
)
5.ttinclude"stdio.h"
main()
{inta[3][4],i,j,max,row,col;
printf(,zinput3*4matrix:\nz/);
for(i=0;i<3;i++)/*输入3*4矩阵*/
for(j=0;j<4;j++)
scanf(〃%d〃,&a[i][j]);
max=a[0][0];row=0;col=O;
for(i=0;i<3;i++)/*寻找矩阵中的最大值及其行列号*/
for(j=0;j<4;j++)
if(max<a[i][j])
{max=a[i][j];row=i,col=j;}
printf(,z\n数组中最大的数是%d,其行号是%d,列号是%d\n〃,max,row,col)
)
6.^defineN3
#defineM4
^include"stdio.h〃
main()
{inta[N][M],i,j,k,max,row,col;
printf(,zinput%d*%dmatrix:\n,z,N,M);
for(i=0;i<N;i++)/*输入二维矩阵*/
for(j=0;j<M;j++)
scanf(z/%d,z,&a[i][j]);
for(i=0;i<N;i++)/*求鞍点*/
{max=a[i][0];row=i;col=0;
for(j=l;j<M;j++)/*求矩阵中每一行的最大值及其所行列号*/
if(max<a[i][j])
{max=a[i][j];col=j;}
for(k=O;k〈N;k++)/*判断每一行的最大值在其所在列是否最大*/
if(a[k][col]<max)
break;
if(k==N)/*得到鞍点*/
{printf("thepointis%d,row=%d,col=%d\nz,,max,row,col);break;}
)
if(i==N)/*没有鞍点*/
printf(,znopoint\n〃);
7.#include"stdio.h〃
main()
{intnum=0,word=0;
/*word=0表示未出现单词,如出现单词就置word为1.num用来统计单词个数*/
chare;
printf(''pleaseinputastring:\n〃);
while((c=getchar())!='\n')
if(c==,')
word=0;
elseif(word二二0)
{word=l;num++;)
printf(,zThereare%dwordsintheline\n〃,num);
)
8.^include"stdio.h"
mainO
{inti,j,uppn,lown,dign,span,othn;
/*uppn,lown,dign,span,othn分别存放英文大写字母、小写字母、数字、空格和其
他字符的个数*/
chartext[3][80];
uppn=lown=dign=span=othn=0;
for(i=0;i<3;i++)
{gets(text[i]);
for(j=0;j<80&&text[i][j]!八O';j++)
{if(text[i][j]>=,A'&&text[i][j]<=,Z')
uppn++;
elseif(text[i][j]>=,a9&&text[i][j]<=,z')
lown++;
elseif(text[i][j]>=,O'&&text[i][j]<=,9')
dign++;
elseif(text[i][j]=,')
span++;
else
othn++;
)
for(i=0;i<3;i++)
printf(〃%s\n〃,text[i]);
printf(〃uppn=%d\n〃,uppn);
printf(〃lown=96d\n〃,lown);
printfCdign=%d\n/Z,dign);
printf("span二/d\n〃,span);
printf(〃othn=%d\n〃,othn);
)
9.ttinclude〃stdio.h"
main()
{inti,j;
charstrl[20],str2[20];
printf(,zinputtwostrings:\nz,);
gets(strl);
gets(str2);
j=strlen(strl);/*求字符串1的长度*/
for(i=0;str2[i]!='\0';i++,j++)/*字符串合并*/
strl[j]=str2[i];
strl[j]=\0J;/*加上字符串结束标志*/
puts(strl);
}
10.#include〃stdio.h〃
main()
{inti,n;
charstrl[20],str2[20];
printf(,zinputtwostrings:(nomorethan20characters)\n,z);
gets(strl);gets(str2);
n=strlen(strl)<strlen(str2)?strlen(strl):strlen(str2);/*n中存放较短字符串的长
度*/
for(i=0;i<n&&strl[i]=str2[i];i++);
printf(,,%d\n/,,strl[i]-str2[i]);
)
第六章函数与编译预处理
一、单项选择题
1.C2.B3.B4.B5.A6.B7.A8.C9.D10.A
二、写出下列程序的运行结果
1.9
2.4,B
8,B
3.-4.000000
4.a—6,b—5
5.48
三、编程题
1.mainO
{intprime(intn);
intn;
printf(z/inputn(n>O):\n");
scanf("%d",&n);
if(prime(n))
printf(,z%disasushu\n〃,n);
elseprintf(,z%disnotasushu\n〃,n);
)
intprime(intn)
{intflag=l,i;
for(i=2;i<=n/2&&flag==l;i++)
if(n%i=0)flag=0;
return(flag);
)
2.
#defineN3
convert(intarray[3][3])
{inti,j,t;
for(i=0;i<N-l;i++)
for(j=i+l;j<N;j++)
{t=array[i][j];
array[i][j]=array[j][i];
arraytj][i]=t;
)
)
main()
{inti,j;
inta[N][N];
printf("inputa:\n〃);
for(i=0;i<N;i++)
for(j=O;j<N;j++)
scanf("%d〃,&a[i][j]);
printf(z,Arraya:\n〃);
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf(〃%5d〃,a[i][j]);
printfr\n,z);
)
convert(a);
printf(zzadezhuanzhiis:\n〃);
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf(〃%5d〃,a[i][j]);
printf(〃\n〃);
}
)
3.^include<stdio.h>
#include<string.h>
main()
{charstr[100];
printf("inputastring:\n");
gets(str);
inverse(str);
printf(z/thereversedstringis:%s\n,z,str);
)
inverse(charstr[])
(
chart;
inti,j;
for(i=0,j=strlen(str)-l;i<j;i++,j--)
(
t=str[i];
str[i]=str[j];
str[j]=t;
)
)
4.^include<stdio.h>
concat(charstrl[],charstr2[])
{inti=0,j;
while(strl[i]!=,\0*)
i++;
for(j=0;str2[j]!=\0';i++,j++)
strl[i]=str2[j];
strl[i]=>\0*;
)
mainO
charstrl[100],str2[100];
gets(strl);gets(str2);
concat(strl,str2);
puts(strl);
}
5.mainO
{charstr[80];
printf("inputastring(4geshuzizifu):\n〃);
scanf(〃%s〃,str);
insert(str);
printf(''resultis:\n%s\n〃,str);
)
insert(charstr[])
(
inti;
for(i=strlen(str);i>0;i-)
(
str[2*i]=str[i];
str[2*i-l]=>';
)
)
6.#include"stdio.h〃
inti,ndight,nwhite,nletter,nother;
count(charstr[])
(
ndight=nwhite=nletter=nother=0;
for(i=0;str[i]!=\0f;i++)
if(str[i]>=,0f&&str[i]<=,9')
ndight++;
elseif((str[i]>=>A,&&str[i]<=,Z')||(str[i]>=,a&&str[i]<=,z'))
nletter++;
elseif(str[i]==,')
nwhite++;
elsenother++;
)
main()
(
chartext[80];
printf("inputastring:\n,z);
gets(text);
count(text);
printf(〃ndight=%d,nletter=%d,nwhite=%d,nother=%d\n,z,ndight,nletter,nwhite,nothe
r);
)
7.#defineN10
ttinclude<stdio.h>
sort(charstr[])
{inti,j;
chart;
for(i=l;i<N;i++)
for(j=O;j<N-i;j++)
if(str[j]>str[j+l])
{t=str[j];str[j]=str[j+l];str[j+l]=t;}
}
main()
(
charstr[N];
inti;
printf("Input10gezifu:\n〃);
gets(str);
sort(str);
printf(,zThesortedresult:\n",);
for(i=0;i<N;i++)
printfstr[i]);
}
8.这题较复杂
#include<stdio.h>
#include<string.h>
#defineN10
voidinput_e(intnum[],charname[N][8])
{inti;
for(i=0;i<N;i++)
{printf(,zinputgonghao:〃);
scanf("%d〃,&num[i]);
printf(z,inputname:,z);
getchar();
gets(name[i]);
)
for(i=0;i<N;i++)
printf(,/%5d%10s\nz/,num[i],name[i]);
)
voidsort(intnum[],charname[N][8])/*选择法排序*/
{inti,j,min,tempi;
chartemp2[8];
for(i=0;i<N-l;i++)
{min二i;
for(j=i+l;j<N;j++)
if(num[j]<num[min])min=j;
templ=num[i];
strcpy(temp2,name[i]);
num[i]=num[min];
strcpy(name[i],name[min]);
num[min]=tempi;
strcpy(name[min],temp2);
}
printf(,zthesortedresult:\n/z);
for(i=0;i<N;i++)
printf("%5d%10s\n",num[i],name[i]);
}
voidsearch(intn,intnum[],charname[N][8])/*折半查找法*/
(
inttop,bott,mid,find;
find=0;
top=0;
bott=N-l;
if((n<num[0])||(n>num[N-l]))
find=-l;
while((find==0)&&(top<=bott))
{mid=(bott+top)/2;
if(n二二num[mid])
{find=l;printf(z,%dnameis:%s\n〃,n,name[mid]);}
elseif(n<num[mid])
bott=mid-l;
elsetop=mid+l;
)
if((find==-l)||(find==0))
printfC'%disnotfound.\nz/,n);
)
main()
intnum[N],number,c,flag;
charname[N][8];
input_e(num,name);
sort(num,name);
for(flag=l;flag;)
{printfCpleaseinputchazhaodegonghao:");/*输入查找的工号*/
scanf(〃%d〃,&number);
search(number,num,name);
printfCcontinueY/N?〃);/*是否继续查找*/
getchar();
c=getchar();
if(c='N'||c='n')
flag=0;
)
)
9.ttinclude〃stdio.h〃
^defineMAX10
mainO
(
charstr[MAX];
chare;
inti;
i=0;
printf("inputnumber(16jinzhi):");/*输入一个十六进制的数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年神经形态视觉传感器的数据处理方法
- 2026年超快激光微纳制造技术应用指南
- 河北省遵化市重点达标名校2026年下学期初三生物试题第二次阶段检测试题考试试卷含解析
- 2025-2026学年浙江省嘉兴市南湖区实验初三毕业班第十七模生物试题含解析
- 陕西省西安市庆安初级中学2025-2026学年初三检测试题(二)(4月)生物试题试卷含解析
- 2026届福建省福清市林厝中学初三“五校”联考化学试题含解析
- 2026年低空经济共保体模式与运作机制
- 2026届江苏省苏州工业园区星港校初三第二次全国大联考化学试题含解析
- 2026年黑龙江省齐齐哈尔市五县新初三入学考试化学试题含解析
- 2026年5GA通感一体基站系统调试与开通操作规程
- 儿童青少年心理健康知识讲座
- 2025年广东省中考物理试题卷(含答案)
- 航运企业合规管理制度
- 2026年高考语文备考之非连续性文本阅读训练(人工智能、科技文化)
- 幼儿园伙食费管理制度
- 月结60天合同协议书
- 肉羊高效健康养殖与疫病防控技术培训
- 养老院食品安全培训
- 全球核安全形势课件
- 《婴幼儿常见病识别与预防》高职早期教育专业全套教学课件
- 《智能制造基础与应用》课件全套 第1-8章 绪论、智能制造数字化基础- 智能制造应用
评论
0/150
提交评论