二级C语言上机题做法小结_二级c语言上机预测题

2020-02-28 其他工作总结 下载本文

二级C语言上机题做法小结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“二级c语言上机预测题”。

二级C语言上机题做法小结

陈忠权 记

一.天空题。

1.如果是填函数的返回值,去看return返回值的类型,就是函数的返回类型。如果return找不到,就看函数的调用。

2.在for语句中,如 for(i=0;i

5.在循环结构中注意两级循环for语句中i与j的关系,从而定位该填什么。

6.如果是赋初值,就看你所赋的值的变量是拿去干什么,如果是用去加就赋0如果是用去乘就赋1.如果是指针的,就去题目中找一个类型相同的具有实值的变量赋给她.7.结构体的调用如b.name和a.sno等。

8如果在题目中看到(*)那么后面一定是填一个数组,如(*)[][M]或(*)[M].9.注意拷贝命令的写法。

10如果在填空题中程序与数的组合有关,哪就会与10有关。是除10,还是与10求余。11.一个字符要变成相应的整形的数,就让这个字符减去字符’0’或是48就可。

12.带头结点的写法如p->next.13.定义文件FILE,文件名filename,打开文件fopen()阅读文件名fread()关闭文件fclose()

14.奇数与2求余成立,偶数与2求余为0 15.插入的写法和删除的写法,删除一个东西就让他等于0就行

二.改错题(在/*********found*********/下一行就是错误点)

1.只要看到(*)++就一定是去括号。

2.注意函数内的变量,如果在题中使用时带有*号,那么变量定义中一定要加上*号。注意函数类型是否正确,看return。

3.看关键字是否写正确,一定要是蓝体的才是正确的。有可能是字母位置错,或是大小写不对。

4.for语句中一定是两个分号,不是逗号。

5.字符串的长度比下标大一,如果要让她等于下标的话要减去1.6.在if语句中大于、小于号一般互换,如果在公式中如果包含n或m就要小于等于n或m。7.等号一般在if语句中出现为==,不是赋值的=.8.在if或while与句中 号一般可互换。9.注意错处得0和O是否混用了。10.注意带头结点的写法。11.%号和/号互换。

12.注意题中大小写的错误。13.注意交换的写法.14.如n=strlen[aa] 这种写法是错的,这是调用,不是定义,应写为n=strlen(aa)

15.注意符号使用的错误。

16.看是否少分号。

17看函数的返回值是否正确,看return。18.sum一般赋初值为0.19.Scanf语句中一定要有&号。

20.函数的定义不能是fun(int x,y,z)这种写法,应是fun(int x,int y,int

z)21.数组的定义一般为s[M]或s[][M]在二维数组的定义中第二个方括号中一定要有一个数M或其他。

22.如果程序是把小写变成大写就减去32就行。

三.程序编写题。

如果遇到的是void无返回值类型的函数,就在里面填int czq=1;就行。填好之后就编译,运行。程序完整运行之后,去打开考生文件夹(用记事本打开,如果记事本不能用,就用vc++6.0软件打开),参照in文件(如果没有in文件,哪么数据就可能在程序中,或运行中显示出来)修改out文件或写out文件。保存就可。

如果是有返回值类型的函数,就在里面填return 1;就行,同样运行,修改或写out文件就行。

下面举两个例子;

1,。如第10题:

#include void fun(char *a, int n){ int czq=1;

}

main(){ char s[81];int n;

printf(“Enter a string:n”);gets(s);

printf(“Enter n : ”);scanf(“%d”,&n);

fun(s,n);

printf(“The string after deleted:n”);puts(s);

NONO();} NONO(){/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE *in, *out;

int i, n;char s[81];

in = fopen(“D:k0124010001in.dat”,“r”);

out = fopen(“D:k0124010001out.dat”,“w”);

for(i = 0;i

fscanf(in, “%s”, s);

fscanf(in, “%d”, &n);

fun(s,n);

fprintf(out, “%sn”, s);

}

fclose(in);

fclose(out);考试就在fun函数中填int czq=1;然后运行结束后打开考生文件夹,in为 *******A*BC*DEF*G**** 4 *******A*BC*DEF*G**** 8 **********LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** 4 ******OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** 5 ********HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ********** 3 *****HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** 2 ******JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** 3 ************UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK*** 4 ********JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** 3 *****JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK***** 2 打开out文件为;

*******A*BC*DEF*G**** *******A*BC*DEF*G**** **********LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** ******OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** ********HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ**********

*****HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** ******JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** ************UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK***

********JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** *****JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*****

然后参照题目要求,是使字符串的前导*号不能多于n个,多于的就删掉,少的就不用管。哪么in文件中不是有数字如4、8、4、5、3等这就是n的值。如第一行就是前导*号不能多于4个,多的就删掉。第一行该为: ****A*BC*DEF*G**** 同样的我们把所有的改完为; ****A*BC*DEF*G****

*******A*BC*DEF*G**** ****LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** *****OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** ***HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ********** **HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** ***JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** ****UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK*** ***JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** **JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK***** 这样改完以后,保存就行了,40分就拿到手了。

2.如第2题;

#include #define

Ntypedef struct { char

num[10];

int

s;} STREC;int fun(STREC *a,STREC *b,int l, int h){ return 1;

}

main(){ STREC s[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85},{“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}};

STREC h[N],tt;FILE *out;

int

i,j,n,low,heigh,t;

printf(“Enter 2 integer number low & heigh : ”);

scanf(“%d%d”, &low,&heigh);

if(heigh

n=fun(s,h,low,heigh);

printf(“The student's data between %d--%d :n”,low,heigh);

for(i=0;i

printf(“%s %4dn”,h[i].num,h[i].s);

printf(“n”);

out = fopen(“D:k0124010001out.dat”,“w”);

n=fun(s,h,80,98);

fprintf(out,“%dn”,n);

for(i=0;i

for(j=i+1;j

if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;}

for(i=0;i

fprintf(out,“%4dn”,h[i].s);

fprintf(out,“n”);

fclose(out);} 由于是有返回值的就在程序中填return 1;就同样运行,打开考生文件夹为; 发现没有in文件,只有out文件为; 1-858993460 很显然数据在程序中为:

STREC s[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85},{“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}};在看看题目是要我们找一个分数段的人数返回,和输出在这个分数段的分数,按从小到大的输出。那么我们可以在程序中看出为:

n=fun(s,h,80,98);看出是找80到98这个分数段的人数及分数。

哪么从小到大的输出在这个分数段的分数从什么看出了?看一下语句:

if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;}看到了,如果大于就交换,哪么是不是把小的放在前面了?

在看看发printf语句为:

fprintf(out,“%dn”,n)一般我们要看输出格式,如(”%4d”)格式就得注意空格换行等,那么我们可以在out文件中删除所有东西后写入如下: 8 85 85 85 87 90 91 94 96 我们可以看出8是这分数段的人数,其他为在这分数段的分数排序写法。做到这里点击记事本,文件、保存就行。

《二级C语言上机题做法小结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
二级C语言上机题做法小结
点击下载文档
相关专题 二级c语言上机预测题 小结 做法 语言 二级c语言上机预测题 小结 做法 语言
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文