C语言上机题库.docx

上传人:b****2 文档编号:659370 上传时间:2023-04-29 格式:DOCX 页数:17 大小:17.97KB
下载 相关 举报
C语言上机题库.docx_第1页
第1页 / 共17页
C语言上机题库.docx_第2页
第2页 / 共17页
C语言上机题库.docx_第3页
第3页 / 共17页
C语言上机题库.docx_第4页
第4页 / 共17页
C语言上机题库.docx_第5页
第5页 / 共17页
C语言上机题库.docx_第6页
第6页 / 共17页
C语言上机题库.docx_第7页
第7页 / 共17页
C语言上机题库.docx_第8页
第8页 / 共17页
C语言上机题库.docx_第9页
第9页 / 共17页
C语言上机题库.docx_第10页
第10页 / 共17页
C语言上机题库.docx_第11页
第11页 / 共17页
C语言上机题库.docx_第12页
第12页 / 共17页
C语言上机题库.docx_第13页
第13页 / 共17页
C语言上机题库.docx_第14页
第14页 / 共17页
C语言上机题库.docx_第15页
第15页 / 共17页
C语言上机题库.docx_第16页
第16页 / 共17页
C语言上机题库.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言上机题库.docx

《C语言上机题库.docx》由会员分享,可在线阅读,更多相关《C语言上机题库.docx(17页珍藏版)》请在冰点文库上搜索。

C语言上机题库.docx

C语言上机题库

gc22.c程序是输入一个字符串,将此字符串中最长的单词输出,程序在注释行附近有两个错误,请试调试改正,但调试改正中不得增删语句。

intalph(charc)

{

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

return

(1);

else

return(0);/*find1*/

}

intlongest(char*str)//intlongest(charstr)

{

intlen=0,i,length=0,flag=1,point,place;

for(i=0;i<=strlen(str);i++)

if(alph(str[i]))

if(flag)

{

flag=0;

point=i;

}

else

len++;

else/*Find2*/

{

flag=1;//flag=0;

if(len>length)

{length=len;

place=point;

len=0;}

}

return(place);

}

main()

{

inti;

charline[100];

printf("Enterstring\n");

gets(line);

printf("thelongestis:

");

for(i=longest(line);alph(line[i]);i++)

printf("%c",line[i]);

printf("\n");

}

二、程序填空题

tk22.c是打印出杨辉三角形,在空白处将程序补充完整,运行得出正确结果。

1

11

121

1331

14641

15101051

.

.

.

#defineN11

main()

{

intI,j,a[N][N];

for(I=1;I

{a[I][I]=1;

a[I][1]=1;//

}

for(I=3;I

for(j=2;j

a[I][j]=a[I-1][j-1]+a[I-1][j];

for(I=1;I

{for(j=1;j<=I;j++)

printf("%6d",a[I][j]);

printf("\n");

}

printf("\n");

}

一、程序改错题(20分)。

下列程序是建立一个包含学生有关数据的单向链表。

但该程序有2个错误,错误出现在每个注释行附近,请调试改正。

调试改正中,不得改变程序结构,也不得增删语句。

#defineNULL0

structstud

{

longnum;

charname[10];

floatscore;

structstud*next;

};

/*……………comment……………*/

intn;

structstudcreate()

{

structstud*head,*p1,*p2;

n=0;

p1=p2=(structstud*)malloc(sizeof(structstud));

scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);

/*……………comment……………*/

head=NULL;

while(p1!

=0)

{

n=n+1;

if(n==1)head=p1;

elsep2->next=p1;

p1=(structstud*)malloc(size(structstud));

scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);

}

p2->next=NULL;

return(head);

}

二、程序填空题(20分)。

下面的程序是完成从键盘上输入若干行长度不一的字符串把其存到一个文件名为ttt.txt的磁盘文件上去,再从该文件中输出这些数据到屏幕上,将其中的小写字母转换成大写字母。

然而,该程序是一个不完整的程序,请在下划线空白处将其补充完整,以便得到正确答案,但不得增删原语句。

#include

main()

{

inti,flag;

charstr[80],c;

FILE*fp;

if((fp=fopen("TTT","w"))==NULL)

{printf("can'tcreatefile\n");

exit(0);

}

for(flat=1;flag;)

{printf("请输入字符串\n");

gets(str);

fprintf(fp,"%s",str);

printf("是否继续输入?

\n");

if((c=getchar()=='N'||

(1))

flag=0;

getchar();

}

fseek(fp,0,0);

while(fscanf(fp,"%s",str)!

=EOF)

{for(i=0;str[i]!

='\0';i++)

if((str[i]>='a'&&(str[i]<='z'))

str[i]=_

(2)

printf("%s",str);

}

fclose(fp);

}

试题一、程序改错题:

gc56.c程序用于将字符串中的小写字母转换为大写字母,程序中有两处错误,请调试改正

之,但不得增删语句.

#include

voidmain(void)

{

chars[255];

inti;

scanf("%s",s);

for(i=0;s[i];i++)

if(s[i]>='a'&&s[i]<='z')//if(s[i]>='b'&&s[i]<='z')

s[i]=s[i]-'a'+'A';//s[i]=s[i]+'a'+'A';

printf("%s",s);

}

试题二、程序填空题

tk56.c程序用于计算4×5的整型数组中最大元素所在行和列的位置。

下面程序不完整,

请将其补充完整,以便得到正确答案,注意:

不得增行和删行,也不得修改程序的结构。

#include

voidmain(void)

{

inta[4][5]={{4,8,9,10,12},

{2,5,13,17,11},

{81,76,34,57,33},

{1,90,3,78,55}};

intmax,max_row,max_col;

inti,j;

max=a[0][0];//

max_row=0;

max_col=0;

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

for(j=0;j<5;j++)

if(max

{

max=a[i][j];

max_row=i;

max_col=j;

}

printf("%d%d",max_row,max_col);

}

试题一、程序改错题:

gc56.c程序用于将字符串中的小写字母转换为大写字母,程序中有两处错误,请调试改正

之,但不得增删语句.

#include

voidmain(void)

{

chars[255];

inti;

scanf("%s",s);

for(i=0;s[i];i++)

if(s[i]>='a'&&s[i]<='z')//if(s[i]>='b'&&s[i]<='z')

s[i]=s[i]-'a'+'A';//s[i]=s[i]+'a'+'A';

printf("%s",s);

}

试题二、程序填空题

tk56.c程序用于计算4×5的整型数组中最大元素所在行和列的位置。

下面程序不完整,

请将其补充完整,以便得到正确答案,注意:

不得增行和删行,也不得修改程序的结构。

#include

voidmain(void)

{

inta[4][5]={{4,8,9,10,12},

{2,5,13,17,11},

{81,76,34,57,33},

{1,90,3,78,55}};

intmax,max_row,max_col;

inti,j;

max=a[0][0];//

max_row=0;

max_col=0;

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

for(j=0;j<5;j++)

if(max

{

max=a[i][j];

max_row=i;

max_col=j;

}

printf("%d%d",max_row,max_col);

}

2.程序改错题

gc57.c的功能是互换给定数组中的最大数和最小数。

如将下面8个数:

5,3,1,4,2,8,9,6

变成:

5,3,9,4,2,8,1,6

程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。

程序有二处错误,请改正。

注意:

不得增行和删行,也不得修改程序的结构。

main()

{

inti;

staticinta[8]={5,3,1,4,2,8,9,6};

voidjhmaxmin();

printf("Originalarray:

\n");

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

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

printf("\n");

jhmaxmin(a,8);

printf("Arrayafterswapingmaxandmin:

\n");

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

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

printf("\n");

}

voidjhmaxmin(p,n)

int*p,n;//intp,n;

{

intt,*max,*min,*end,*q;

end=p+n;

max=min=p;

for(q=p+1;q

{if(*q>*max)max=q;

if(*q<*min)min=q;//if(*q

}

t=*max;*max=*min;*min=t;

}

1.程序填空题

tk57.c用来输出两整数M和N之间的所有素数(质数)。

所谓一个整数n为素数,是指n除了能被1和其本身n除尽

外,不能被2到n-1中的任何整数除尽。

如7为素数,而9不是素数。

程序中,外循环变量i用于控制整数选择范围,内循环变量j用于判断某整数i是否为素数,若是,

则输出该素数,且通过变量s来控制每行输出5个素数。

#defineM4

#defineN30

main()

{

inti,j,k,s=0;

for(i=M;i<=N;i++)//

{for(j=2;j

if(i%j==0)break;

if(j>=i)

{printf("%5d",i);

s=s+1;

if(s%5==0)printf("\n");

}

}

printf("\n");

}

程序改错题:

gc101.c的功能为:

输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有三处错误代码,请改正.注意,不得改变程序结构。

#include

main()

{

inta[8],*p=a;

inti,j;

inttempmin,tempcode;

printf("\ninputthenumbers:

\n");

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

scanf("%d",p+i);

tempmin=*p;

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

{

for(j=i;j<8;j++)

if(j==i||*(p+j)

{tempmin=*(p+j);//tempmin=*(p+i);

tempcode=j;

};

if(tempcode!

=i)

{*(p+tempcode)=*(p+i);

*(p+i)=tempmin;//*(p+j)=tempcode;

}

}

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

printf("%d,",*(p+i));//printf("%d,",(p+i));

return

(1);

}

程序填空题

tk101.c中有整形数组a[]。

通过调用子程序inv(),对a[]数组中的元素,反向交换存储位置。

请在括号[]处补充完整程序,并删除[],运行测试,实现上述要求。

不得增加行或删除行,也不得更改程序结构。

voidinv(intx[],intn)

{

inttemp,i,j,m=[];

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

{j=n-i-1;

temp=x[i];

[];

x[j]=[];

}

return;

}

main()

{

inta[10]={4,5,6,7,8,9,10,11,12,88};

inti;

printf("Theoriginalarray:

\n");

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

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

printf("\n");

inv(a,10);

printf("Thereversearray:

\n");

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

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

printf("\n");

}

试题一、程序改错题:

gc56.c程序用于将字符串中的小写字母转换为大写字母,程序中有两处错误,请调试改正

之,但不得增删语句.(20分)

#include

voidmain(void)

{

chars[255];

inti;

scanf("%s",s);

for(i=0;s[i];i++)

if(s[i]>='a'&&s[i]<='z')//if(s[i]>='b'&&s[i]<='z')

s[i]=s[i]-'a'+'A';//s[i]=s[i]+'a'+'A';

printf("%s",s);

}

试题二、程序填空题

tk56.c程序用于计算4×5的整型数组中最大元素所在行和列的位置。

下面程序不完整,

请将其补充完整,以便得到正确答案。

(20分)

#include

voidmain(void)

{

inta[4][5]={{4,8,9,10,12},

{2,5,13,17,11},

{81,76,34,57,33},

{1,90,3,78,55}};

intmax,max_row,max_col;

inti,j;

max=a[0][0];//

max_row=0;

max_col=0;

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

for(j=0;j<5;j++)

if(max

{

max=a[i][j];

max_row=i;

max_col=j;

}

printf("%d%d",max_row,max_col);

}

1.程序填空题

tk57.c用来输出两整数M和N之间的所有素数(质数)。

所谓一个整数n为素数,是指n除了能被1和其本身n除尽

外,不能被2到n-1中的任何整数除尽。

如7为素数,而9不是素数。

程序中,外循环变量i用于控制整数选择范围,内循环变量j用于判断某整数i是否为素数,若是,

则输出该素数,且通过变量s来控制每行输出5个素数。

#defineM4

#defineN30

main()

{

inti,j,k,s=0;

for(i=M;i<=N;i++)//

{for(j=2;j

if(i%j==0)break;

if(j>=i)

{printf("%5d",i);

s=s+1;

if(s%5)printf("\n");

}

}

printf("\n");

}

2.程序改错题

gc57.c的功能是互换给定数组中的最大数和最小数。

如将下面8个数:

5,3,1,4,2,8,9,6

变成:

5,3,9,4,2,8,1,6

程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。

在**********之间有二处错误,请改正。

注意:

不得增行和删行,也不得修改程序的结构。

main()

{

inti;

staticinta[8]={5,3,1,4,2,8,9,6};

voidjhmaxmin();

printf("Originalarray:

\n");

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

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

printf("\n");

jhmaxmin(a,8);

printf("Arrayafterswapingmaxandmin:

\n");

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

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

printf("\n");

}

voidjhmaxmin(p,n)

int*p,n;//intp,n;

{

intt,*max,*min,*end,*q;

end=p+n;

max=min=p;

for(q=p+1;q

{if(*q>*max)max=q;

if(*q<*min)min=q;//if(*q

}

t=*max;*max=*min;*min=t;

}

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

当前位置:首页 > 工程科技 > 材料科学

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

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