二级C上机要点总结.docx

上传人:b****0 文档编号:8917008 上传时间:2023-05-16 格式:DOCX 页数:50 大小:144.80KB
下载 相关 举报
二级C上机要点总结.docx_第1页
第1页 / 共50页
二级C上机要点总结.docx_第2页
第2页 / 共50页
二级C上机要点总结.docx_第3页
第3页 / 共50页
二级C上机要点总结.docx_第4页
第4页 / 共50页
二级C上机要点总结.docx_第5页
第5页 / 共50页
二级C上机要点总结.docx_第6页
第6页 / 共50页
二级C上机要点总结.docx_第7页
第7页 / 共50页
二级C上机要点总结.docx_第8页
第8页 / 共50页
二级C上机要点总结.docx_第9页
第9页 / 共50页
二级C上机要点总结.docx_第10页
第10页 / 共50页
二级C上机要点总结.docx_第11页
第11页 / 共50页
二级C上机要点总结.docx_第12页
第12页 / 共50页
二级C上机要点总结.docx_第13页
第13页 / 共50页
二级C上机要点总结.docx_第14页
第14页 / 共50页
二级C上机要点总结.docx_第15页
第15页 / 共50页
二级C上机要点总结.docx_第16页
第16页 / 共50页
二级C上机要点总结.docx_第17页
第17页 / 共50页
二级C上机要点总结.docx_第18页
第18页 / 共50页
二级C上机要点总结.docx_第19页
第19页 / 共50页
二级C上机要点总结.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

二级C上机要点总结.docx

《二级C上机要点总结.docx》由会员分享,可在线阅读,更多相关《二级C上机要点总结.docx(50页珍藏版)》请在冰点文库上搜索。

二级C上机要点总结.docx

二级C上机要点总结

二级C上机要点总结

一、填空题

填空题每题三个空,全部在/*****found*****/的下一行,填写答案时应注意先删去下划线和标号,再填答案.

例如:

/**********found**********/

____1____s;

先删去阴影部分,再填入正确答案.使最后结果变为

/**********found**********/

doubles;

答案填写完毕后应按屏幕左上角

保存.可以不用运行.

填空题常见题型分类

文件题1.先要定义文件指针,第一个空一般填FILE2.若空在某一函数中,则大部分都填写文件指针fp3.两个fopen中间一定填fclose(fp)

链表若出现p=p->___2___的情况,一定填next

主对角a[i][i]反对角线a[i][n-i-1]

交换口诀:

两头是中间变量,中间首位相连.

例:

t=str[i];str[i]=str[j];___3___=t;

此处应填str[j]

选择排序格式如下(升序用>降序用<)

for(i=0;i

for(j=i+1;j

if(s[i]>s[j])

{x=s[i];s[i]=s[j];s[j]=x;}

二、改错题

改错题每题有两至三个错误,错误均在/****found****/的下一行,其他行不准做任何修改.将所有错误改完后应注意保存.点击屏幕左上角

.答题后也可不用运行.

改错题常见题型分类

1.语句的标志;例returna;

2.除号的写法例b\=a应改为b/=a

3.字符串的结束标志‘\0’例t[j]=‘0’应改为t[j]=‘\0’

4.*的用法若定义一个变量为指针则改错时应把指针改为它的内容形式例int*a;……a=5;应改为*a=5;

5.关键字应为小写,并注意拼写例Inta;应改为inta;

例dounbes;应改为doubles;

注:

C语言中关键字均为蓝色,若某关键字为黑色,则表示其拼写一定有错误.

6.赋值=和判断==得区别例if(a=b)应改为if(a==b)

例sum=j==0;应改为sum=j=0;

注:

一般在小括号()中出现的为判断,应把=改为==,不在小括号中就为赋值,应把==改为=

7.0和O,l和1的区别在C语言中的写法数字

和字母

.数字

和字母

.

8.for循环中三个表达式应用;隔开

例for(i=1,i

9.定义和使用要一致

例intc;……C=C+32;应改为c=c+32;

例doublesum=0;……sun+=t;应改为sum+=t;

10.变量的初值(求和初值为0,求积初值为1)

例intt=0;……t*=i;应改为intt=1;

例doublesum;……sum+=a[i];应改为doublesum=0;

11.公式题分母的取值范围

for(i=2;i

所以应改为for(i=2;i<=m;i++)

12.定义函数出错定义函数若出错应注意两点,一找调用二找return.

例/*******found*******/

voidfun(inta)

{doubles;…………returns;}

main(){……t=fun(&a);……}/*调用函数*/

一找调用:

调用是地址,定义就应是指针.二找return,return返回的s是double,定义就应该是double

应改为doublefun(*a)

三、编程题

★编程题可以分为十类

1.a与b合并2.整除3.字符串4.平均分和结构体5.二维数组6.素数7.公式和数字8.删除*号9.找最值10.特殊题

做编程题的方法可分为填程序法和简单方法两种,考生在考试时应先阅读中文题目,再根据自己的习惯决定答题方法.这里给出建议:

整除,素数及公式题不可用简单方法.

★使用简单方法应着重注意格式控制.即程序NONO()函数中的fprintf().常出现的格式控制总结如下

例1:

fprintf(wf,“%4d\n”,a[i]);表示输出的整数应占4位,若不足4位应在该数前面补空格,使其补足4位.

若a数组中元素为{2,4,6,8,10},则输出结果为(□表示空格)

□□□2□□□4□□□6□□□8□□10

例2:

fprintf(wf,“%lf”,s);表示输出的小数应有6位小数.

若s的值为33,则输出结果为33.000000

例3:

“%5.2f”;表示输出的小数(整数部分,小数点,小数部分)一共占5位,并且保留2位小数,若不足2位小数要补0,若超出2位则四舍五入.

fprintf(wf,“%5.2f”,ave);

若ave中的值为91.8,则输出的结果为91.80

fprintf(wf,“%6.1f”,ave);

若ave中的值为78.5则输出结果为□□78.5

例4:

fprintf(wf,“%s\n”,st);“%s”表示输出字符串

若st串为abcdefg则输出结果应顶头写abcdefg

例5.“格式控制”,此时双引号中有什么就输出什么.

fprintf(wf,“Thelowest:

%s,%d\n”m.num,m.s);

则输出结果为The□lowest□:

□NUM06,23

★编程题中文题目中的专有名词解释

1.素数:

只能被1和自身整除的数.如2,3,5,7,11,13…

2.周边元素:

如图所示

1121314151

1222324252

1323334353

1424344454

1525354555

3左下半三角和右上半三角(均包括主对角线)

11213141511121314151

12223242521222324252

13233343531323334353

14243444541424344454

15253545551525354555

4.转置(行列互换)

A123411A’1238

34534412

8123211532

★简单方法in.dat文件中特殊的数据

1.数组中有n个整数,要求把下标从0~p的数组元素平移到数组的最后

10312345678910

解释:

这组数据中10就是题目中的n,3则是题目中p,真正的数组从第三个数1开始,所以此组数据表示:

这是一个有10个元素的一维数组,将下标从0到3的元素平移到最后.

结果为56789101234

还应注意下标从0开始

2.删去一维数组中所有相同的数,使之只剩一个

2022234566667789910101010

解释:

此组数据中20表示这个数组中一共有20个元素,真正的数组应从第二个数2开始.

结果为2345678910

3.w是n位整数,求w后n-1位的数.

fprintf(wf,“%u\n”,fun(x));

12346456123983456751001869078189619011

此题中要求每行只输出一个整数,则结果应为

234

456

2398

4567

……

4.如何判断数组行数和列数

在程序前两行会出现如下所示

#defineM4

#defineN5

M后的数表示行数,N后的数表示列数。

★简单方法的操作步骤

1.阅读中文题目,判断该题是否适用简单方法

2.点击屏幕左上角打开

出现对话框

路径:

rf=fopen("K:

\\EXAM\\240XXXXX\\in.dat","r");

在文件名处填写in.dat

打开后出现以下窗口

3.点击屏幕左上角文件->另存为再次出现打开对话框.在文件名处填写out.dat,点击打开,出现以下窗口

在此窗口中用简单方法做出最后结果,最后点击

保存该文件.

 

★填程序方法注意事项

启动VC++环境后,在空白的一组{}中填写程序.填完之后先保存,然后点击屏幕右上角

编译,当屏幕下方出现0error(s)时,点击

连接,屏幕下方为0error(s),0warning(s)时,点击

运行,并出现黑屏,黑屏有两种情况.

一,需要考生输入数据后再看结果,如下图所示

此时应将中问题目中“例如”中的数据输入黑屏看结果.若黑屏中结果与题目中例如相吻合,表示此题程序填写正确.如与题目不符,则表示程序中存在非语法类的错误.需继续修改程序.

注:

输入数据的格式应按照程序main()函数中scanf()中的格式控制输入.若输入数据为字符串时,注意“”不输入.例如:

题目中举例为:

当输入字符串“ABCdefg”时,运行结果为“aBcdefg”.此时在黑屏当中我们只需要输入ABCdefg就可以了,无需输入“”

二,黑屏中无需输入数据就已给出结果,如下图所示

此时应将此结果与中文题目中例如所举的例子或按照题意对比,如与题意相符表示此题编写正确,如与题意不符则表示程序中存在非语法类的错误.需继续修改程序.

注:

当黑屏中自动给出结果时,有时其结果可能会与题目中例如有出入,但此时并不意味着结果一定有错误,请仔细读懂中文题目的意思,并验证黑屏结果与中文题目意思是否相符,只要相符就表示程序编写正确.

例如下图所示

中文题目为

黑屏运行结果为

请仔细对比中文题目与黑屏结果!

!

简单方法的练习题

数字合并

1.将a数十位和个位数依次放在c数千位和十位上,b数十位和个位数依次放在c数百位和个位上。

#include

voidfun(inta,intb,long*c)

{

}

main()

{inta,b;longc;voidNONO();

printf("Inputa,b:

");scanf("%d,%d",&a,&b);

fun(a,b,&c);printf("Theresultis:

%d\n",c);NONO();}

voidNONO()

{/*打开文件,输入数据,调用函数,输出数据,关闭文件*/

FILE*rf,*wf;inti,a,b;longc;

rf=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

for(i=0;i<10;i++)

{fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);

fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}

fclose(rf);fclose(wf);}

进入in.dat,另存为out.dat后,数据形式为:

45,12

63,54

14,78

88,91

71,13

12,45

72,32

29,99

34,43

22,44

与该题目类似的有

◇将a数十位和个位数依次放在c数个位和百位上,b数十位和个位数依次放在c数千位和十位上。

◇将a数十位和个位数依次放在c数个位和百位上,b数十位和个位数依次放在c数十位和千位上。

◇将a数十位和个位数依次放在c数十位和千位上,b数十位和个位数依次放在c数百位和个位上。

◇将a数十位和个位数依次放在c数百位和个位上,b数十位和个位数依次放在c数千位和十位上。

◇将a数十位和个位数依次放在c数千位和十位上,b数十位和个位数依次放在c数个位和百位上。

◇将a数十位和个位数依次放在c数十位和千位上,b数十位和个位数依次放在c数个位和百位上。

◇将a数十位和个位数依次放在c数百位和个位上,b数十位和个位数依次放在c数十位和千位上。

平均

1.计算n门课程的平均分。

voidNONO()

{/*打开文件,输入数据,调用函数,输出数据,关闭文件*/

FILE*fp,*wf;inti,j;floataver,score[5];

fp=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

for(i=0;i<10;i++)

{for(j=0;j<5;j++)fscanf(fp,"%f,",&score[j]);

aver=fun(score,5);

fprintf(wf,"%5.2f\n",aver);}

fclose(fp);fclose(wf);}

进入in.dat,另存为out.dat后,数据形式为:

90.5,72,80,61.5,55

98,72.5,78,24.5,77

67.5,78,76.5,56,99

88,62.5,45,54.5,71

78,72.5,55,88.5,72

48,82.5,43,94.5,73

68,92.5,87,84.5,74

77,32.5,57,54.5,75

56,42.5,68,67.5,76

85,62.5,99,86.5,52

2.N名学生的成绩已放入一个带头节点的链表结构中,h指向链表的头节点。

求出平均分。

voidNONO()

{/*打开文件,输入数据,调用函数,输出数据,关闭文件*/

FILE*in,*out;inti,j;doubles[N],ave;STREC*h;

in=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

out=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

for(i=0;i<10;i++)

{for(j=0;j

h=creat(s);ave=fun(h);

fprintf(out,"%6.3lf\n",ave);}

fclose(in);fclose(out);}

进入in.dat,另存为out.dat后,数据形式为:

85.5,76,69.5,85,91,72,64.5,87.5

82.5,66,76.5,76,89,76,46.5,78.5

72.5,56,66.5,66,79,68,46.5,58.5

92.5,76,86.5,86,99,86,56.5,88.5

82,66.5,46.5,56,76,75,76.5,63.5

75.5,74,71.5,85,81,79,64.5,71.5

92.5,61,72.5,84,79,75,66.5,72.5

72.5,86,73.5,80,69,63,76.5,53.5

66.5,71,74.5,70,61,82,86.5,58.5

76,66.5,75.5,60,76,71,96.5,93.5

3.m个人成绩存放在score数组中,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

voidNONO()

{/*打开文件,输入数据,调用函数,输出数据,关闭文件*/

inti,j,n,below[10],score[10];FILE*rf,*wf;

rf=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

for(i=0;i<10;i++)

{for(j=0;j<10;j++)fscanf(rf,"%d",&score[j]);

n=fun(score,10,below);

for(j=0;j

fprintf(wf,"\n");}

fclose(rf);fclose(wf);}

进入in.dat,另存为out.dat后,数据形式为:

1111211012768856575432

980876675896101301401431451777

910806605496901101101231151444

120576275596401201211441401321

180176175196201201201231451888

280276275296201201287231451555

380376375396301301301331351999

480476475496201201101131151777

580176475296301601801131151111

98767596103040434177

字符串

1.比较两个字符串的长度,函数返回较长的字符串。

voidNONO()

{/*打开文件,输入数据,调用函数,输出数据,关闭文件*/

FILE*fp,*wf;inti;chara[20],b[20];

fp=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

for(i=0;i<10;i++)

{fscanf(fp,"%s%s",a,b);

fprintf(wf,"%s\n",fun(a,b));}

fclose(fp);fclose(wf);}

进入in.dat,另存为out.dat后,数据形式为:

alskdffdslkfjds

dksfjfdssdd

jkfdfsdlkfjds

lksdjflksdflkdsjf

lksdjffslkdjf

fsdljfsdlkff

flsdjkfsdklfad

fslkjflsjfslkd

flksjflksdfjknlfksdn

lkjfsfsfsfsd

2.实现两个字符串的连接。

voidNONO()

{/*打开文件,输入数据,调用函数,输出数据,关闭文件*/

inti;FILE*rf,*wf;chars1[80],s2[40];

rf=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

for(i=0;i<10;i++)

{fscanf(rf,"%s",s1);fscanf(rf,"%s",s2);fun(s1,s2);

fprintf(wf,"%s\n",s1);}

fclose(rf);fclose(wf);}

进入in.dat,另存为out.dat后,数据形式为:

12345

67890

kjhjkhkjkl

kljkljkl

jkhjkhjkh

987689

kjhjkh

lmjnklj

sdsfsdfds

fsdfdsf

fsdfsdf

345234

423423

423423

7547dvgdf

5634

gdefgdf

tyerter

34563

565764

3.将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

voidNONO()

{/*打开文件,输入数据,调用函数,输出数据,关闭文件*/

FILE*fp,*wf;chartt[81];inti;

fp=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

for(i=0;i<10;i++)

{fscanf(fp,"%s",tt);fun(tt);

fprintf(wf,"%s\n",tt);}

fclose(fp);fclose(wf);}

进入in.dat,另存为out.dat后,数据形式为:

sdkfjslfkjsfsdfsdfdsgsdfgsdg

fsdlkfjsdlkfjsdlkfsdfkjsd

jkrklwer24352dlksjfjsd

fslkdfjsdlfkjsdkfljsd

fsdlkfjsdlkfsdfsd53534gdefgdf

dflfg435tgldfgsdfgdsgdf

gdfgfdkljgfdklg

fsfvDSFSDFfsdfsd

AnvikosdfjBBBadfjdlksfsd

fdskjNNNkfsdjfNNNdfasjfsd

4.删除字符串中的所有空格。

voidNONO()

{/*打开文件,输入数据,调用函数,输出数据,关闭文件*/

charstr[81];intn=0;FILE*rf,*wf;

rf=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

while(n<10)

{fgets(str,80,rf);fun(str);

fprintf(wf,"%s",str);n++;}

fclose(rf);fclose(wf);}

进入in.dat,另存为out.dat后,数据形式为:

jhfjdkhjdhfjhfjdkhfljsdsdjdskjldsklsdjdsdsdjdslds.

fdshfdsfjskdhfksdfsjklfsfsdjlkfjsdlsjflgfllsdkjfsldfdfdslfkdjs.

Sjdhfdsfsfsdfdskffhdskfdsjkfdjkfhdsjkfdsfdsfdjshfdjsfdsjfsd

jfdshfjdsfskdjhfkjsddsjhfdskfsdfsdkfsdfsdfdskfdskjfhsdkfd

fdsjhfsdfdsfdsjfhdsfdskfdsfsdkfdsjfdsfdsjkfdsfdsfdsfdsjkgj

fjkfdjsdhfsjdkfhsdfdskfdskfdskfhskfdskfdskfhsdkfdskjsdkjsd

jkfdsfsfsdfsdsdfsdlfdsfslslfsdlfsdlfslfsfsdfsdlfsfsd

fsdjkhfdskfdskhfksdffshkjsdffsdkjhfskdfsfdskdfsdkfkfsdhfksd

fdshfksfdsfdsfhdskfdsfdskfhskdfsdkfsdkfsdkfdsfs

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2