计算机二级上机考试程序题2

更新时间:2023-09-02 16:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

程序调试

1、

#include <stdio.h> #include <string.h>

void fun(char *s,char *t) {

int i,sl; sl=strlen(s);

for(i=0;i<sl;i++) t[i]=s[i]; for(i=0;i<sl;i++)

/********1********/ // t[sl+i]=s[s1-1-i]; t[sl+i]=s[sl-i]; /********2********/

t[sl]="\0"; // t[sl+s1]=’\0’; }

void main() {

char s[100],t[100]; scanf("%s",s); fun(s,t);

printf("%s",t); } 2、

#include <stdio.h> void main() { int n,i;

scanf("%d",&n);

/****** 1 ******/

i=1; // i=2;

while(n>1) if(n%i==0) {

printf("%d\t",i); n/=i; } else

/******** 2 *******/ } 3、

n++; // i++;

#include <stdio.h> #include <math.h> void main() { int n,s=0;

scanf("%d",&n); n=fabs(n);

/******** 1 *******/ while(n>1) { // s=s+n%10;

/******** 2 ******/ n=n%10; }

printf("%d\n",s); } 4、

1}n 2}n!=0

// n=n/10;

#include <stdio.h> #include <math.h> #include <stdlib.h> void main() {

int i,n;

/***** 1 *****/

struct axy { float x,y; } a; //struct axy { float x,y; } *a; scanf("%d",&n);

a=(float*) malloc(n*2*sizeof(float)); for(i=0;i<n;i++) /***** 2 *****/

scanf("%f%f",a[i].x,a[i].y);// scanf("%f%f",&a[i].x,&a[i].y); for(i=0;i<n;i++)

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5) printf("%f,%f\n",a[i].x,a[i].y); } 5、

#include<stdio.h>

void itoa(long i,char *s) {

if(i==0) return;

/****** 1 ******/

*s = '1'+i%10; //*s = '0'+i%10;

itoa(i/10,s-1); }

void main() {

long n;

char str[7]="";

scanf("%ld",&n); /****** 2 ******/

itoa(n,str+6); // itoa(n,str+5);

printf("%s",str); } 6、

#include <stdio.h> #define N 10 void main() {

int i,j,min,temp;

int a[N]={5,4,3,2,1,9,8,7,6,0};

printf("\nThe array is:\n"); /* 输出数组元素 */ for (i=0;i<N;i++)

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

for (i=0;i<N-1;i++) /* 排序操作 */

{

min = i;

for (j=i+1; j<N; j++) /****** 1 ******/

if (a[min]<=a[j]) min =j; // if (a[min]>=a[j]) /****** 2 ******/

temp=a[min]; a[min]=a[j]; a[j]=temp; /* 数据交换 */

// temp=a[min]; a[min]=a[i]; a[i]=temp;

}

printf("\nThe sorted numbers: \n"); /* 输出排序结果 */ for (i=0;i<N;i++) printf("%5d",a[i]);

printf("\n"); } 7、

#include <stdio.h> void main() {

char s1[80],s2[40]; int i=0,j=0;

printf("\nInput the first string:"); scanf("%s",s1);

printf("\nInput the second string:"); scanf("%s",s2); while (s1[i] !='\0')

/****** 1 ******/

i+1; // i= i+1;

while (s2[j] !='\0') /****** 2 ******/

s1[++i]=s2[++j]; /* 拼接字符到s1 */ s1[i] ='\0';

printf("\nNew string: %s",s1); } } 8、

//s1[i++]=s2[j++];

#include <stdio.h> void main()

{ int i,a,n,t=0;

/***** 1 *****/

s=0; // int s=0; scanf("%d%d",&a,&n);

for(i=1;i<=n;i++) { /******* 2 ******/

t=t*10+i; // t=t*10+1; s=s+t;

}

s=s*a;

printf("%d\n",s); } 9、

#include <stdio.h> #include <math.h> void main()

{ float x,eps,s=1,t=1,i=1; scanf("%f%f",&x,&eps);

do {

/***** 1 *****/

t=-t*x/++i; // t = -t * x / i++; s+=t;

/***** 2 *****/

} while(fabs(t)<eps) // while(fabs(t)>=eps) ;

printf("%f\n",s); } 10、

#include <stdio.h> void main()

{ float x,max,min; int i; /******** 1 *******/

for(i=0;i<=10;i++) { // i<10 循环的个数不对,如果i<=10话则i=1;那下面的应改为i==1 scanf("%f",&x);

/******* 2 ********/

if(i=1) { max=x;min=x;} // i==0 保证第一次时条件成立 if(x>max) max=x; if(x<min) min=x; }

printf("%f,%f\n",max,min); } 11、

#include <stdio.h> #include <string.h> void main() {

char str[256];

int i,j,k=0,n; gets(str); n=strlen(str); for(i=0;i<n;i++)

/********1********/

if (tolower(str[i])<'a' || tolower(str[i])>'z')

// (str[i])>='a' && (str[i])<='z'|| (str[i] )>='A' && (str[i] )<='Z')或tolower(str[i])<'a'

&& tolower(str[i])>'z'

{

/********2********/

str[n]=str[i]; n++; //{ str[k]=str[i]; k++; }

}

str[k]='\0';

printf("%s\n",str); }

12、在考生目录下,有Modify.c程序,该程序中”/******N******/”的下一行中 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入m、n(要求输入数均大于0),输出它们的最小公倍数 /*find the lease common multiple of m and n*/ #include <stdio.h> void main() { int m,n,k; /****1*****/

while(scanf("%d%d",&m,&n),m<0&&n<0); // m<0|| n<0 for(k=m;k%n!=0;) /*****2****/

k=k+m%n; // k=k+m printf("%d\n",k); }

13、在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下一行中有错误, 请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入1个字符串,输出其中所出现过的大写英文字母。如运行时 输入字符串"FONTNAME and FILENAME",应输出"F O N T A M E I L"。 #include <stdio.h> void main()

{ char x[80],y[26]; int i,j,ny=0; gets(x);

for(i=0;x[i]!='\0';i++)

if(x[i]>='A'&&x[i]<='Z') {

for(j=0;j<ny;j++) /***** 1 *****/

if(y[i]==x[j]) continue; // if(y[j]==x[i]) break;

if(j==ny) { y[ny]=x[i]; ny++; } }

/***** 2 *****/

for(i=0;i<26;i++) // i<ny printf("%c ",y[i]); printf("\n"); }

14、. 在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下

一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。 #include <stdio.h> #include <ctype.h> void main()

{ char a[80]; int n[5]={0},i;

gets(a);

for(i=0; a[i]!=’\0’; i++) /***** 1 *****/

switch(tolower(a+i)) { // (tolower(a[i])) case 'a': n[0]++; break; case 'e': n[1]++; break; case 'i': n[2]++; break; case 'o': n[3]++; break; /***** 2 *****/

case 'U': n[4]++; break; // ‘u’ }

for(i=0;i<5;i++) printf("%d\n",n[i]); }

15、在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下

一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负) 该程序功能:输入n(0<n<10)后,输出1个数字金字塔。如输入n为4, 则输出:

1

222 33333 4444444

#include <stdio.h> void main() { int i,j,n;

/***** 1 *****/

scanf("%d", n); // &n for(i=1;i<=n;i++) {

for(j=1;j<=n+1-i;j++)

putchar(' ');

for(j=1;j<=2*i-1;j++) putchar((char)(i+48)); /****** 2 *****/

putchar(\n); // ‘\n’ } }

16、 在考生目录下,有Modify.c程序,该程序中“/***** N *****/”的下一行中有错误,

请改正(注意:不得加行、减//行、加句、减句,否则后果自负)。 该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。 #include <stdio.h> #include <string.h> #include <stdlib.h>

void main() { int n,i;

/***** 1 *****/

char str; // char *str scanf("%d\n",&n); str=(char*)malloc(n); gets(str); /***** 2 *****/

for(i=1;i<strlen(str);i++) // i=0 if(str[i]>='a'&& str[i]<='z') str[i]=str[i]-32 ; puts(str); }

本文来源:https://www.bwwdw.com/article/598i.html

Top