免费计算机2级C语言考试必考题型.docx

上传人:b****2 文档编号:16920112 上传时间:2023-04-24 格式:DOCX 页数:10 大小:16.54KB
下载 相关 举报
免费计算机2级C语言考试必考题型.docx_第1页
第1页 / 共10页
免费计算机2级C语言考试必考题型.docx_第2页
第2页 / 共10页
免费计算机2级C语言考试必考题型.docx_第3页
第3页 / 共10页
免费计算机2级C语言考试必考题型.docx_第4页
第4页 / 共10页
免费计算机2级C语言考试必考题型.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

免费计算机2级C语言考试必考题型.docx

《免费计算机2级C语言考试必考题型.docx》由会员分享,可在线阅读,更多相关《免费计算机2级C语言考试必考题型.docx(10页珍藏版)》请在冰豆网上搜索。

免费计算机2级C语言考试必考题型.docx

免费计算机2级C语言考试必考题型

专题一判断一年是否为润年

 

main()

{

intyear,leap;

scanf("%d",&year);if((year%4==0&&year%100!

=0)

||(year%400==0))leap=1;

elseleap=0;

if(leap)printf("%disnotaleapyear\n",year);

elseprintf("%disaleapyear\n",year);

}

专题二判断M是否为素数

 

求100-200间的全部素数。

#include

main()

{intm,k,i,n=0;

for(m=101;m<=200;m=m+2)

{

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>=k+1){printf("%d",m);n=n+1;}

if(n%10==0)printf("\n");

}

printf("\n");}

专题三矩阵运算

 

专题四递归算法求n!

 

floatfac(intn)

{

floatf;

if(n<0)printf("n<0,dataerror!

");

elseif(n==0)||(n==1)f=1;

elsef=fac(n-1)*n;

return(f);

}

main()

{intn;floaty;

printf("inputaintegernumber:

");

scanf("%d",&n);

y=fac(n);

printf("%d!

=%15.0f",n,y);

}

专题五排序法

 

#include

intmain(){

inta[5]={5,10,-7,3,7},i,t,j;

choose_sort(a);

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

printf("%d\n",a[i]);

return0;

}

voidchoose_sort(inta[]){

inti,j,t;

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

for(j=i+1;j<5;j++)

if(a[i]>a[j]){

t=a[j];

a[j]=a[i];

a[j]=t;

}

}

专题七指针处理链表

 

建立一个简单链表,它由3个学生数据的结点组成,输出各结点中的数据。

#defineNULL0

structstudent

{longnum;

floatscore;

structstudent*next;

};

main()

{structstudenta,b,c,*head,*p;

a.num=99101;a.score=89.5;

b.num=99103;b.score=90;

c.num=99107;c.score=85;

head=&a;

a.next=&b;

b.next=&c;

c.next=NULL;

p=head;

do{

printf("%ld%5.1f\n",p->num,p->score);

p=p->next;

}while(p!

=NULL);

}

 

专题八文件操作

 

真题解析

例1:

读程序,回答问题

将下列程序编译、连接后生成一个名为2_3.exe的可执行文件。

假设盘上有两个文本文件file1.dat和file2.dat,file1.dat的内容为123abc,file2.dat的内容为xyzABC987。

  

(1)若在DOS提示符下键入

2_3file1.datfile2.dat

则程序的运行结果为:

intmain(intargc,char*argv[]){

FILE*fp;

intfun(FILE*);

intnum,i=1;

while(--argc>0)

if((fp=fopen(argv[i++],"r"))==NULL){

printf("Cannotopenfile!

\n");

exit(0);

}

else{

num=fun(fp);

fclose(fp);

}

printf("num=%d\n",num);

}

 

intfun(FILE*fp){

staticintcount=0;

charc;

c=fgetc(fp);

while((c!

=EOF)){

if(c>='0'&&c<='9')

count++;

c=fgetc(fp);

}

returncount;

}

 

解:

num=6

 

若将fun函数中对count的定义

staticintcount=0,改为intcount=0,其余条

件不变,若在DOS提示符下键入

2_3file1.datfile2.dat

则程序的运行结果为:

#include

intfun(FILE*fp){

/*staticintcount=0;*/

intcount=0;

charc;

c=fgetc(fp);

while((c!

=EOF)){

if(c>='0'&&c<='9')

count++;

c=fgetc(fp);

}

returncount;

}

 

解:

num=3

 

若将fun函数中对count的定义

staticintcount=0,改为intcount,其余条

件不变,若在DOS提示符下键入

2_3file1.datfile2.dat

则程序的运行结果为:

#include

intfun(FILE*fp){

/*staticintcount=0;*/

intcount;

charc;

c=fgetc(fp);

while((c!

=EOF)){

if(c>='0'&&c<='9')

count++;

c=fgetc(fp);

}

returncount;

}

 

解:

num=随机值

例2:

程序填空题

将三个职工的数据(编号,姓名,年龄)从键盘输入,存放到一个新建的二进制文件employee中去。

先看两个函数

fread(buffer,size,count,fp);

fwrite(buffer,size,count,fp);

  

以上两个函数常用于二进制文件的访问

程序如下:

 

#include

intmain(){

FILE*fp;

structemployee{

longcode;

charname[20];

intage;

}em;

intk;

 

if((fp=fopen("employee", ① ))==NULL){

printf("error\n");

return(0);

}

for(k=0;k<3;k++){

scanf("%ld%s%d",&em.code,em.name,&em.age);

fwrite(②,sizeof(structemployee),③,fp);

}

fclose(fp);

return1;

}

 

解:

①"wb"

②&em

③1

 

例3:

以下程序运行后,文件test中的内容为

#include

#include

voidfun(char*fname,char*st){

FILE*fp;

inti;

fp=fopen(fname,"w");

for(i=0;i

fputc(st[i],fp);

fclose(fp);

}

 

voidmain(){

fun("test","world");

fun("test","hello");

}

world(B)worldhello

(C)helloworld(D)hello

 

解:

hello

例4:

程序填空题

文件stu.txt中存放了一个学生各门课程的考试分数,数据之间以逗号分割。

下面程序将文件中的所有分数取出,计算平均分,显示在屏幕上,还要把这个平均分数按原文件的数据格式记录在原文件中。

例如文件stu.txt中存放的为“60.5,81.1,93.5,90.5”,则程序运行后文件stu.txt中为60.5,81.1,93.5,90.5,78.363339

#include

intmain(){

intn=0;

floatx=0.0,y;

FILE*fp;

fp=①  ;

do{

fscanf( ② );

if(feof(fp))break;

x+=y;

n++;

}while

(1);

 

x=x/n;

printf("average=%f",x);

  ③  ;

fclose(fp);

return0;

}

 

解:

①fopen("stu.txt","r+")

②fp,"%f,",&y

③fprintf(fp,",%f",x);

 

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

当前位置:首页 > 法律文书 > 起诉状

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

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