浙江省二级《C程序设计》上机考试练习补充.docx

上传人:b****6 文档编号:6037450 上传时间:2023-01-03 格式:DOCX 页数:37 大小:30.92KB
下载 相关 举报
浙江省二级《C程序设计》上机考试练习补充.docx_第1页
第1页 / 共37页
浙江省二级《C程序设计》上机考试练习补充.docx_第2页
第2页 / 共37页
浙江省二级《C程序设计》上机考试练习补充.docx_第3页
第3页 / 共37页
浙江省二级《C程序设计》上机考试练习补充.docx_第4页
第4页 / 共37页
浙江省二级《C程序设计》上机考试练习补充.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

浙江省二级《C程序设计》上机考试练习补充.docx

《浙江省二级《C程序设计》上机考试练习补充.docx》由会员分享,可在线阅读,更多相关《浙江省二级《C程序设计》上机考试练习补充.docx(37页珍藏版)》请在冰豆网上搜索。

浙江省二级《C程序设计》上机考试练习补充.docx

浙江省二级《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")

统计60<=分数<80且性别为”男”的人数=SUMPRODUCT((A2:

A5>=60)*(A2:

A5<80)*(B2:

B5="男"))

设A列为数学成绩,若数学成绩>=85,在D5单元格内填入“优秀”,否则填入空白:

=if(A2>=85,"优秀","")

设A列为数学成绩,B列为英语成绩,若数学成绩>=85或英语成绩>=85,在D5单元格内填入“优秀”,否则填入“合格”:

   =if(A2>=85,"优秀",if(B2>=85,"优秀","合格"))

若数学成绩>=85并且英语成绩>=85,…:

   =if(A2>=85,if(B2>=85,"优秀","合格"),"合格")

“自定义填充序列”等属性设置:

工具-选项-自定义序列    按右键拖拉

筛选列出所有分数在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;}/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1