二级C冲刺班上机复习材料Word格式.docx

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

二级C冲刺班上机复习材料Word格式.docx

《二级C冲刺班上机复习材料Word格式.docx》由会员分享,可在线阅读,更多相关《二级C冲刺班上机复习材料Word格式.docx(91页珍藏版)》请在冰点文库上搜索。

二级C冲刺班上机复习材料Word格式.docx

考生在复习这部分的时候,首先应该注意结构体成员的两种不同的引用方法:

结构体变量和指向结构体的指针,也就是结构体成员运算符‘.’和指向运算符‘->

’,在编程的过程中,往往会涉及到结构体数组,其实这类数组除了数据类型是结构体外,其他的特性和普通数组是一样的,结构体除了定义、赋值和初始化以外,其他的操作和普通变量也是一样的,包括在结构体数组(记录)中进行查找、删除、求最大最小值等操作,我们应该用对待普通变量的方法来解决结构体的问题,这样的话,难度就大幅度的降低。

4.对二维数组的操作

该类问题在历年的机试中占16%,考生应该对二维数组的元素遍历方法、存储方式、矩阵转换等问题做重点掌握。

在C语言中,访问二维数组的数族元素一般采用双层循环的方法实现,因为二维数组具有两个下标:

行下标和列下标;

二维数组可以按行或者按列转化成一维数组进行存储;

对二维数组进行行列转换的时候,要将行下标和列下标进行互换。

考生还应该掌握上三角矩阵、下三角矩阵的特性,在考试中,矩阵的表达形式经常考到二维数组的坐标转换。

5.数制转换

该部分在以往的机试中占11%,包括两类问题:

一是整数合并,而是类型转换,例如对一个数的各位进行一系列的变化。

在复习该部分时,考生应该注意C语言中int、long、float、double类型数据所占的存储空间大小和精度,注意%(模)运算和/(整除)运算的特点,特别应该灵活的使用模运算与除法运算求数据相应位数上的数值,掌握强制类型转换的方法以及按规定的位数保留小数的方法。

6.素数

该部分在历年机试中占6%,考生应该牢固掌握素数的基本概念和判断素数的方法,特别要求考生注意整数1不是素数,所以在判断素数时应该从2开始,到(n-1)结束,能够除尽的不是素数,不能除尽的是素数。

判断素数是C语言中的一个基本算法,不仅会在程序填空和程序改错中也会有所涉及,应该重点复习。

C语言编程常见错误

1.书写标识符时,忽略了大小写字母的区别。

main()

{

inta=5;

Printf(“%d”,A);

}

2.忽略了变量的类型,进行了不合法的运算。

floata,b;

printf(“%d”,a%b);

3.将字符常量与字符串常量混淆。

charc;

c=“a”;

4.忽略了“=”与“==”的区别。

if(a=3)……if(a==3)……

5.忘记加分号。

a=1

b=1

6.多加分号。

{

z=x+y;

t=z/100;

printf(“%f”,t);

};

inta[10];

for(i=0;

i<

10;

i++);

s+=a[i];

7.输入变量时忘记加地址运算符“&

”。

inta,b;

scanf(“%d%d”,a,b);

8.输入数据的方式与要求不符。

scanf(“%d%d”,&

a,&

b);

输入3,4

9.输入字符的格式与要求不一致。

在用%c格式输入字符时,空格字符和转义字符都将作为有效字符输入

scanf(“%c%c%c”,&

c1,&

c2,&

c3);

输入abc

10.输入输出的数据类型与所用格式说明符不一致。

inta=3;

floatb=4.5;

printf(“%f%d”,a,b);

11.输入数据时,企图规定精度。

scanf(“%7.2”,&

a);

12.switch语句中漏写break语句。

switch(grade)

case‘A’:

printf(“85~100\n”);

case‘B’:

printf(“70~84\n”);

case‘C’:

printf(“60~69\n”);

case‘D’:

printf(“<

60\n”);

default:

printf(“errer\n”);

13.定义数组时误用变量

intn;

scanf(“%d”,&

n);

inta[n];

14.在定影数组时,将定义的“元素个数”误认为是可使的最大下标值

inta[10]={1,2,3,4,5,6,7,8,9,10};

printf(“%d”,a[10]);

15.在不该加地址运算符&

的未知加了地址运算符。

scanf(“%s”,&

str);

上机-填空部分

一、填空题

考试做题要求:

  1、在__1__处填写正确的答案,并将下划线和数字删除。

  2、将题目做完之后一定要保存。

3、不能删除/**********found**********/,也不能多行或少行。

1.函数fun的功能是:

统计所有小于等于n(n>

2)的素数的个数,素数的个数作

为函数值返回。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include<

stdio.h>

intfun(intn)

{inti,j,count=0;

printf("

\nTheprimenumberbetween3to%d\n"

n);

for(i=3;

i<

=n;

i++){

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

for(___1___;

j<

i;

j++)

if(___2___%j==0)

break;

if(___3___>

=i)

{count++;

printf(count%15?

"

%5d"

:

"

\n%5d"

i);

}

returncount;

{intn=20,r;

r=fun(n);

\nThenumberofprimeis:

%d\n"

r);

2.人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入

结构体数组std中。

函数fun的功能是:

找出指定出生年份的人员,将其数据放

在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。

不得增行或删行,也不得更改程序的结构!

#defineN8

typedefstruct

{intnum;

intyear,month,day;

}STU;

intfun(STU*std,STU*k,intyear)

{inti,n=0;

for(i=0;

N;

i++)

if(___1___==year)

k[n++]=___2___;

return(___3___);

{STUstd[N]={{1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15},

{5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}};

STUk[N];

inti,n,year;

Enterayear:

);

scanf("

%d"

&

year);

n=fun(std,k,year);

if(n==0)

\nNopersonwasbornin%d\n"

year);

else

{printf("

\nThesepersonswerebornin%d\n"

for(i=0;

n;

%d%d-%d-%d\n"

k[i].num,k[i].year,k[i].month,k[i].day);

3.给定程序中,函数fun的功能是:

求ss所指字符串数组中长度最短的字符串所

在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。

ss所指字符

串数组中共有M个字符串,且串长<

N。

string.h>

#defineM5

#defineN20

intfun(char(*ss)[N],int*n)

{inti,k=0,len=N;

___1___;

{len=strlen(ss[i]);

if(i==0)*n=len;

if(len___2___*n)

{*n=len;

k=i;

return(___3___);

{charss[M][N]={"

shanghai"

"

guangzhou"

beijing"

tianjing"

chongqing"

intn,k,i;

\nTheoriginalstringsare:

\n"

M;

i++)puts(ss[i]);

k=fun(ss,&

\nThelengthofshorteststringis:

n);

\nTheshorteststringis:

%s\n"

ss[k]);

4.给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun

函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表

缩短。

stdlib.h>

typedefstructlist

{intdata;

structlist*next;

}SLIST;

voidfun(SLIST*p)

{SLIST*t,*s;

t=p->

next;

s=p;

while(t->

next!

=NULL)

{s=t;

t=t->

%d"

___2___);

s->

next=NULL;

free(___3___);

SLIST*creatlist(int*a)

{SLIST*h,*p,*q;

inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

{q=(SLIST*)malloc(sizeof(SLIST));

q->

data=a[i];

p->

next=q;

p=q;

next=0;

returnh;

voidoutlist(SLIST*h)

{SLIST*p;

p=h->

if(p==NULL)printf("

\nThelistisNULL!

\nHead"

do{printf("

->

p->

data);

p=p->

}while(p!

=NULL);

End\n"

{SLIST*head;

inta[N]={11,12,15,18,19,22,25,29};

head=creatlist(a);

\nOutputfromhead:

outlist(head);

\nOutputfromtail:

\n"

while(head->

=NULL){

fun(head);

\n\n"

\nOutputfromheadagain:

5.给定程序中,函数fun的功能是:

在形参s所指字符串中的每个数字字符之后插入一个*号。

例如,形参s所指的字符串为:

def35adh3kjsdf7。

执行结果为:

def3*5*adh3*kjsdf7*。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

voidfun(char*s)

{inti,j,n;

s[i]!

='

\0'

;

if(s[i]>

0'

___1___s[i]<

9'

{n=0;

while(s[i+1+n]!

=___2___)n++;

for(j=i+n+1;

j>

j--)

s[j+1]=___3___;

s[j+1]='

*'

i=i+1;

{chars[80]="

ba3a54cd23a"

\nTheoriginalstringis:

s);

fun(s);

\nTheresultis:

6.函数fun的功能是:

把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数值返回。

例如:

若a所指数组中的数据最初排列为:

9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:

4、2、6、8,返回值为4。

#defineN9

intfun(inta[],intn)

{inti,j;

j=0;

if(___1___==0){

___2___=a[i];

j++;

return___3___;

{intb[N]={9,1,4,2,3,6,5,8,7},i,n;

\nTheoriginaldata:

i++)printf("

%4d"

b[i]);

n=fun(b,N);

\nThenumberofeven:

%d\n"

\nTheeven:

7.给定程序中,函数fun的功能是:

统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。

abcdef35adgh3kjsdf7。

输出结果为:

4。

#include<

voidfun(char*s,int*t)

{inti,n;

n=0;

___1___!

=NULL;

&

s[i]<

=___2___)n++;

___3___;

abcdef35adgh3kjsdf7"

intt;

fun(s,&

t);

t);

8.给定程序的功能是:

从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。

然后将文件的内容读出显示在屏幕上。

文件的读写分别由自定义函数ReadText和WriteText实现。

voidWriteText(FILE*);

voidReadText(FILE*);

{FILE*fp;

if((fp=fopen("

myfile4.txt"

w"

))==NULL)

openfail!

!

exit(0);

WriteText(fp);

fclose(fp);

r"

ReadText(fp);

voidWriteText(FILE___1___)

{charstr[81];

\nEnterstringwith-1toend:

gets(str);

while(strcmp(str,"

-1"

)!

=0){

fputs(___2___,fw);

fputs("

fw);

void

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

当前位置:首页 > 工程科技 > 电子电路

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

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