省二级《C程序设计》上机考试练习补充.docx
- 文档编号:25469877
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:44
- 大小:30.55KB
省二级《C程序设计》上机考试练习补充.docx
《省二级《C程序设计》上机考试练习补充.docx》由会员分享,可在线阅读,更多相关《省二级《C程序设计》上机考试练习补充.docx(44页珍藏版)》请在冰豆网上搜索。
省二级《C程序设计》上机考试练习补充
计算机基础-操作注意事项
学习方法:
将实验指导书上操作练习一遍,看操作熟练的同学完整地做一遍考题
考试:
提前15分钟到考场,带学生证/身份证/准考证
鼠标好用否?
;考试中出现异常(如黑屏、空白word文档)立刻报告老师
窗口关一个再打开下一个;”做题”可修改,”重做”则覆盖;图表有”示例图1”等参考对比;
考生目录有”素材”文件夹;剪贴画、声音等-C:
\考生素材\...
Outlook:
工具-账户/选项 接收、发送邮件
IE:
工具-Internet选项-常规/高级 收藏夹
主页保存-文件-另存为(注意保存格式的选择) 主页中某链接的保存-点击进链接-…
网络属性及IP地址等:
网上邻居-属性-本地连接-属性-Internet协议(TCP/IP)-属性-高级
控制面板(经典视图)-系统-硬件-设备管理器-网络适配器-…Ethernet属性
WindowsXP:
为notepad.exe(mspaint.exe)在桌面的开始-程序-附件文件夹内建快捷方式(或其它位置处):
开始(右键)-属性-经典开始菜单-自定义-添加-浏览(c:
\WINDOWS\system32\notepad)
-指定文件夹-重命名
设数值、货币格式、度量衡、短日期格式等:
控制面板-区域和语言选项-自定义
设置屏幕刷新频率为80赫兹:
控制面板-显示-设置-高级-监视器
计算器计算(科学型):
5mod3(取余=2) not0(=1)5and3(=1)5or0(=1) Xor…
Word2003:
“、”-中文状态下按”\”T-空格T 破折号-全角状态-
页面设置:
-页边距-装订线位置、-纸张-(打印)纸张大小16K、
-版式-设置(页眉和页脚)奇偶页/首页不同、
-文档网络-“指定行和字符网络”/设置每页40行,每行35字
将文中所有“青年”替换为“花朵”:
编辑-替换
页眉、页脚:
视图
任选一幅剪贴画插入文中:
插入-图片-来自文件-C:
\考试素材\剪贴画
设置图片阴影样式13/三维效果样式:
选定图片-绘图工具栏(窗口最下方)-…
设置字体”空心、阳文、阴影”:
格式-字体 文字效果为”闪烁背景”:
格式-字体-文字效果
段前间距设为12磅:
格式-段前间距(?
行)-磅 0.5cm-0.5厘米
将第一、二段合并:
光标移至第一段末-按Delete键删除段尾回车符
设置页面边框为示例中的艺术型边框(如苹果):
格式-边框和底纹-页面边框-艺术型
分栏:
将指定段落分栏-选定段落(段落尾部回车符不要选)-格式-分栏 分隔线
首字下沉:
格式
各种属性设置(如设置”键入时检查拼写”):
工具-选项
使用格式刷:
选定要复制格式的文字段落-点击工具栏上”格式刷”-刷要设置格式的文字
Excel2003:
设置表格数值格式、对齐方式、底纹图案”5%灰色”、合并单元格等:
选定单元格-右键-设置单元格属性
设置行高、列宽:
选定整行/列-右键-行高/列宽 最适合的行高:
格式-行-行高
设置<60分的单元格以红色显示数据、底纹为黄色:
条件格式-格式-图案
统计A2到A5列,工资>=60并且<=80的人数写到D5单元格内:
光标到D5单元格-输入公式=countif(A2:
A5,">=60")-countif(A2:
A5,">80")
“自定义填充序列”等属性设置:
工具-选项-自定义序列 按右键拖拉
筛选列出所有分数在480分以上的男生:
在表格中分行列出如下条件--高级筛选
入学部分
性别
>480
男
分类汇总:
先按指定字段排序-分类汇总
数据透视图:
数据-数据透视图
拆分窗口:
窗口-拆分
将某列金额增加10%:
在另空白列输入公式-拖拉-复制该列-选择性粘贴(数值)至原列
Powerpoint2003:
演示文稿高度、宽度、编号起始值:
页面设置
在幻灯片日期区插入日期:
插入-日期和时间-全部应用
剪贴画建立超级链接到第3张幻灯片:
选定图-右键-超链接-书签-第3张幻灯片3
设置剪贴画放映效果为自右侧飞入:
选定图-右键-自定义动画-添加效果-飞入-方向
链接颜色设置、配色方案等:
格式-幻灯片设计-配色方案-编辑-自定义
幻灯片设计、幻灯片版式
对各种属性设置:
工具-选项
对剪贴画设置大小及水印效果:
选定图-右键-设置图片格式-图片-图像控制-颜色-冲蚀
上机程序调试及程序设计练习
一、程序填空
(1)找Armstrong(水仙花)数:
371=3*3*3+7*7*7+1*1*1
#include
#include
voidmain()
{inti,a,b,c;
for(i=100;i<=999;i++)
{a=i/100;
_______1_______//b=i%100/10;
c=i%10;
if(________2________)//a*a*a+b*b*b+c*c*c==i
printf("%disaArmstrongnumber!
\n",i);
}
}
(2)输入1个整数后,输出该数的位数。
(例:
输入3214则输出4,输入-23156则输出5)。
#include
voidmain()
{intn,k=0;
scanf("%d",&n);
while(_____1_____){//n!
=0
k++;
_____2_____;//n=n/10
}
printf("%d\n",k);
}
(3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
#include
#include
voidmain()
{intn,s=0;
scanf("%d",&n);
______1______//if(n<0)n=-n;
while(n!
=0){
______2______//s+=n%10;
n=n/10;
}
printf("%d\n",s);
}
(4)调用函数f,将一个整数首尾倒置。
例如:
若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。
#include
#include
longf(longn)
{longm,y=0;m=fabs(n);
while(m!
=0){
y=y*10+m%10;
____1____//m=m/10;
}
if(n>=0)returny;
else_____2_____//return-y;
}
voidmain()
{
printf("%ld\t",f(12345));printf("%ld\n",f(-34567));
}
(5)调用函数f,从字符串中删除所有的数字字符。
#include
#include
#include
voidf(char*s)
{inti=0;
while(s[i]!
='\0'){
if(isdigit(s[i]))____1____(s+i,s+i+1);//strcpy
___2___i++;}//else
}
voidmain()
{charstr[80];
gets(str);f(str);puts(str);
}
(6)调用find函数在输入的字符串中查找是否出现"the"这个单词。
如果查到返回出现的次数,如果未找到返回0。
#include
intfind(char*str)
{char*fstr="the";
inti=0,j,n=0;
while(str[i]!
='\0')
{
for(______1______)//j=0;j<3;j++
if(str[j+i]!
=fstr[j])break;
if(______2______)n++;//j>=3
i++;
}
returnn;
}
voidmain()
{chara[80];
gets(a);
printf("%d",find(a));
}
(7)输入的一个小写字母,将字母循环后移5个位置后输出。
例如:
"a"变成"f","w"变成"b"。
#include
voidmain()
{charc;
c=getchar();
if(______1______)//c>='a'&&c<='u'
c=c+5;
else
if(c>='v'&&c<='z')
______2______//c=(c-'a'+5)%26+'a'; //c=c-(‘v’-‘a’);
putchar(c);
}
(8)将字符串s中所有的字符'c'删除。
#include
voidmain()
{chars[80];
inti,j;
gets(s);
for(i=j=0;______1______;i++)//s[i]!
='\0'
if(s[i]!
='c')
{s[j]=s[i];
______2______//j++;
}
s[j]='\0';
puts(s);
}
(9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。
#include
#include
#definef(x)x*x-5*x+sin(x)
voidmain()
{intx;floatmax;
______1______//max=f
(1);
for(x=2;x<=10;x++)
______2______//if(f(x)>max)max=f(x);
printf("%f\n",max);
}
(10)输入三个整数,按由小到大的顺序输出这三个数。
#include
voidswap(______1______)//int*pa,int*pb
{/*交换两个数的位置*/
inttemp;
temp=*pa;
*pa=*pb;
*pb=temp;
}
voidmain()
{inta,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(b>c)
swap(&b,&c);
if(______2______)//if(a>b)
swap(&a,&b);
printf("%d,%d,%d",a,b,c);
}
(11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:
1346
#include
voidf(int*a,int*m)
{inti,j;
for(i=0;i<*m;i++)
if(a[i]<0){
for(j=i--;j<*m-1;j++)a[j]=a[j+1];
_____1_____;//*m=*m-1;
}
}
voidmain()
{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};
_______2_______;//f(x,&n);
for(i=0;i printf("\n"); } (12)调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。 #include floatf(float,float*,int); voidmain() {floatb[5]={1.1,2.2,3.3,4.4,5.5}; printf("%f\n",f(1.7,b,5)); } floatf(_______1________)//floatx,float*a,intn {floaty=a[0],t=1;inti; for(i=1;i _____2_____//returny; } (13)分别统计字符串中英文字母、数字、和其他字符出现的次数。 #include #include voidmain() {chara[80];intn[3]={0},i;gets(a); ________1________//for(i=0;a[i]! ='\0';i++) {if(tolower(a[i])>='a'&&tolower(a[i])<='z')/*统计字母个数*/ n[0]++; elseif(________2________)/*统计数字个数*///a[i]>='0'&&a[i]<='9' n[1]++; else n[2]++; } for(i=0;i<3;i++)printf("%d\n",n[i]); } (14)将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。 (例如: 输入十进制数79,将输出十六进制4f。 ) #include #include chartrans(intx) { if(x<10)return'0'+x; else_______1________//return'a'+x-10; } intDtoH(intn,char*str) { inti=0; while(n! =0) { ________2________//str[i]=trans(n%16); n/=16;i++;} returni-1; } voidmain() { inti,k,n; char*str;//注意: 题目有错! str是悬挂指针。 应改为: charstr[80]; scanf("%d",&n); k=DtoH(n,str); for(i=0;i<=k;i++)printf("%c",str[k-i]); } (15)将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。 #include voidDec2Bin(intm) { intbin[32],j; for(j=0;m! =0;j++) { bin[j]=______1______;//m%2 m=m/2; } for(;j! =0;j--) printf("%d",______2______);//bin[j-1] } voidmain() { intn; scanf("%d",&n); Dec2Bin(n); } (16)数列的第1、2项均为1,此后各项值均为该项前二项之和。 计算数列第30项的值。 #include _______1______//longf(intn);或者longf(int); voidmain() {printf("%ld\n",f(30)); } longf(intn) {if(______2______)//n==1||n==2 return1; else returnf(n-1)+f(n-2); } (17)该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。 #include structSTUDENT {charname[16]; intmath; intenglish; intcomputer; intaverage; }; voidGetAverage(structSTUDENT*pst)/*计算平均成绩*/ {intsum=0; sum=______1______;//pst->math+pst->english+pst->computer pst->average=sum/3; } voidmain() {inti; structSTUDENTst[4]={{"Jessica",98,95,90},{"Mike",80,80,90}, {"Linda",87,76,70},{"Peter",90,100,99}}; for(i=0;i<4;i++) {GetAverage(______2______);//st+i } printf("Name\tMath\tEnglish\tCompu\tAverage\n"); for(i=0;i<4;i++) {printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].english, st[i].computer,st[i].average); } } (18)输入m、n(要求输入数均大于0)。 输出它们的最大公约数。 #include voidmain() {intm,n,k; while(scanf("%d%d",&m,&n),______1______);//m<=0||n<=0 for(___2___;n%k! =0||m%k! =0;k--);//k=m>n? n: m printf("%d\n",k); } (19)求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。 例如: b[1]=a[0]+a[1],……,b[9]=a[8]+a[9]。 #include voidmain() {inta[10],b[10],i; printf("\nInput10numbers: "); for(i=0;i<10;i++)/*数组输入*/ scanf("%d",&a[i]); for(i=1;i<10;i++) b[i]=______1______;/*计算b数组中的元素*///a[i-1]+a[i] for(i=1;i<10;i++) {printf("%3d",b[i]); if(______2______)printf("\n");/*每行打印3个数据*///i%3==0 } } (20)输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。 #include voidmain() {intm=0,t=1,n; while(_____1________);//scanf(“%d”,&n),n<=0//逗号表达式 while(! (t<=n&&t*2>=n)){ _____2_____//t=t*2; m++; } printf(“%d\n”,m); } 二、程序改错 (1)输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 #include #include 题目有错! 应增加一行: #include voidmain() {charstr[256]; inti,j,k=0,n; gets(str); n=strlen(str); for(i=0;i /********1********/ if(tolower(str[i])<'a'||tolower(str[i])>'z')//if(tolower(str[i])>='a'&&tolower(str[i])<='z') { /********2********/ str[n]=str[i];n++;//str[k]=str[i];k++; } str[k]='\0'; printf("%s\n",str); } (2)输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。 例如: 输入"ABCD",则字符串t为"ABCDDCBA"。 #include #include voidfun(char*s,char*t) {inti,sl; sl=strlen(s); for(i=0;i t[i]=s[i]; for(i=0;i /********1********/ t[sl+i]=s[sl-i];//t[sl+i]=s[sl-1-i]; /********2********/ t[sl]="\0";//t[sl+i]='\0'; } voidmain() {chars[100],t[100]; scanf("%s",s); fun(s,t); printf("%s",t); } (3)运行时输入10个数,然后分别输出其中的最大值、最小值。 #include voidmain() {floatx,max,min;inti; /********1*******/ for(i=0;i<=10;i++){//for(i=1;i<=10;i++){ scanf("%f",&x); /*******2********/ if(i=1){max=x;min=x;}//if(i==1){max=x;min=x;} if(x>max)max=x; if(x } printf("%f,%f\n",max,min); } (4)用选择法对10个整数按升序排序。 #include #defineN10 voidmain() {inti,j,min,temp; inta[N]={5,4,3,2,1,9,8,7,6,0}; printf("\nThearrayis: \n");/*输出数组元素*/ for(i=0;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 二级 程序设计 上机 考试 练习 补充