文档库 最新最全的文档下载
当前位置:文档库 › C语言上机考试题

C语言上机考试题

C语言上机考试题
C语言上机考试题

上机考试题

请按学号做相应题号的试题,考试时间10:10—11:20。

请在11:25之前离开考场

1. 编写完整的程序,求3×4矩阵中的最大元素及其所在行和列的位置。

2. 设计函数,求整数n 的阶乘,并在主函数中调用该函数(通过循环结构)计算下列多项式: y=1!+3!+5!+7!

3. 求所有这样的三位数,这些三位数等与其各位数字的立方和。

例如: 153 = 1*1*1 + 5*5*5 + 3*3*3.

4. 编写完整的程序,用公式 ...!

1...!31!21!111++++++=n e

计算 e 的近似值,直到某项小于10-7为止.

5. 填空, 本程序的功能是把两个字符串合并并且按升序排列。首先对字符串a 按ASCII 码值从小到大升序排列,然后把字符串b 中的字符按升序规则插入到已排好序的字符串a 中去。

# include

# include

main()

{ int i,j,k,n;

char a[80]=”zkcvbn ”,b[80]=”askd ”;

n=strlen(a); for( (1) ;i++) for( (2) ;j++ )

if(a[j]

k=a[i],a[i]=a[j],a[j]=k;

for(k=0;b[k];k++)

{ for(j=0;b[k]>a[j]&&a[j];j++);

for(i=n;i>=j;i--) (3) ; (4) ; a[ (5) ]=’\0’;

}

printf(“\nmerge string is %s ”,a);

}

6. 下列程序有三个错误,请纠正。

以下程序的功能是输入一个字符串,并将其中的字符 ’a ’ 用字符串’shu ’替代後输

出。如输入为“123abcaHello ”,则输出为“123shubcshuHello ”。

#include

void main()

{

int i; char line[81];

scanf(“%s”, &line);

for(i=0; line[i]!=’\n’; i++)

if(line[i]==’a’)

printf(“shu”);

else

printf(“%s”, line[i]);

}

7.下列程序有三个错误,请纠正。

以下程序实现对输入的长度小于100的英文字母串(空格表示结束)进行头尾相接,围成一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI, IJ, ST, 总共出现3次)。

#include

void main()

{

char s[100];

int k, len, no;

scanf(“%s”, s);

len=strlen(s);

s[len]=s[0];

s[len++]=’\0’;

for(k=0; k

if(s[k-1]+1==s[k]) {

printf(“%c %c\n”, s[k-1], s[k]);

no++;

}

printf(“%d\n”, no);

}

8.填空。

【问题描述】已知X和Y是两个整型数组,而且X中的数据按从小到大的顺序排列,Y 中的数据按从达到小的顺序排列。以下程序将X和Y中的数归并,并按从小到大的顺序保存到整型数组Z中,然后输出数组Z中的各个元素。例如,X数组为{1, 12, 23, 37},Y数组为{123, 78, 36, 3},归并後生成的新数组Z为{1, 3, 12, 23, 36, 37, 78, 123}。

void sorted(int up[], int down[], int merged[], int n)

{

int i, j, k, m;

i=k=0; j=n-1; while( (1) )

if(up[i]<=down[j])

{ (2) ;

i++;

k++;

}

else

{ merged[k]== (3) ;

j--;

k++;

}

if(i==n&&j>=0)

for( ; j>=0; j--) merged[k++]= (4) ;

if(j==0&&i

for( ; i

}

void main()

{

int pu[]={1, 12, 23, 37}, down[]={123, 78, 36, 3}, merged[8], k;

sorted(up, down, merged, 4);

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

printf(“%5d ”, merged[k]);

printf(“\n ”);

}

9. π的值可以使用下公式计算

+??+?++=7

3523152313112π 请编写函数compute_pi(double eps)计算π的近似值,当公式中某一项的值小于eps (例

如,eps=1e-5)时,停止计算并返回结果。

10.改错。程序中有三个错误,请纠正。

用冒泡排序法求出由21个整数组成的中间值,并输出所有大于中间值的偶数。

【程序】

#include

void main() {

int I, j, temp;

int array[21];

for(i=0; i<21; i++ ) scanf("%d", array[i]);

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

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

if(array[j]>array[j+1])

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

printf("%d",array[10]);

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

if(array[i]/2==0) printf(" %d ", array[i]);

}

11.改错。程序中有三个错误,请纠正。

用下面的方法可以计算y 年m 月d 日是星期几(w ):

w=[y-1+(y-1)/4-(y-1)/100+(y-1)/400+y_d(y, m, d)]%7

其中,符号/表示计算整数商,%表示计算余数,y_d(y, m, d)表示y 年m 月d 日是同年元

旦算起到该日的总天数。

【程序】

int day_tab[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int y_d(int y, int m, int d) {

int i, all;

y=y%4==0&&y%100||y%400==0;

for(i=0; i<=m; i++) all+=day_tab[i]; /* 统计某月份(m 月)之前的天数 */

all+=y; /* 对闰年考虑2月份是29天 */

return all+d;

}

void main() {

int y=2005, m=7, d=11, w;

w=y-1+(y-1)/4 - (y-1)/100 + (y –1) / 400 + y_d(y, m, d);

w%=7;

printf("%d 年%d 月%d 日是星期%d\n", y, m, d, w);

}

12.编写完整的程序,求3×4矩阵中的最大元素及其所在行和列的位置。

13.设计函数,求整数n 的阶乘,并在主函数中调用该函数(通过循环结构)计算下列多项式: y=1!+3!+5!+7!

14.求所有这样的三位数,这些三位数等与其各位数字的立方和。

例如: 153 = 1*1*1 + 5*5*5 + 3*3*3.

15.编写完整的程序,用公式 ...!

1...!31!21!111++++++=n e

计算 e 的近似值,直到某项小于10-7为止.

16.填空, 本程序的功能是把两个字符串合并并且按升序排列。首先对字符串a按ASCII码值

从小到大升序排列,然后把字符串b中的字符按升序规则插入到已排好序的字符串a中去。

# include

# include

main()

{ int i,j,k,n;

char a[80]=”zkcvbn”,b[80]=”askd”;

n=strlen(a);

for( (1) ;i++)

for( (2) ;j++ )

if(a[j]

k=a[i],a[i]=a[j],a[j]=k;

for(k=0;b[k];k++)

{ for(j=0;b[k]>a[j]&&a[j];j++);

for(i=n;i>=j;i--)

(3) ;

(4) ;

a[ (5) ]=’\0’;

}

printf(“\nmerge string is %s”,a);

}

17.下列程序有三个错误,请纠正。

以下程序的功能是输入一个字符串,并将其中的字符’a’用字符串’shu’替代後输出。如输入为“123abcaHello”,则输出为“123shubcshuHello”。

#include

void main()

{

int i; char line[81];

scanf(“%s”, &line);

for(i=0; line[i]!=’\n’; i++)

if(line[i]==’a’)

printf(“shu”);

else

printf(“%s”, line[i]);

}

18.下列程序有三个错误,请纠正。

以下程序实现对输入的长度小于100的英文字母串(空格表示结束)进行头尾相接,围成一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI, IJ, ST, 总共出现3次)。

#include

void main()

{

char s[100];

int k, len, no;

scanf(“%s”, s);

len=strlen(s);

s[len]=s[0];

s[len++]=’\0’;

for(k=0; k

if(s[k-1]+1==s[k]) {

printf(“%c %c\n”, s[k-1], s[k]);

no++;

}

printf(“%d\n”, no);

}

19.填空。

【问题描述】已知X和Y是两个整型数组,而且X中的数据按从小到大的顺序排列,Y 中的数据按从达到小的顺序排列。以下程序将X和Y中的数归并,并按从小到大的顺序保存到整型数组Z中,然后输出数组Z中的各个元素。例如,X数组为{1, 12, 23, 37},Y数组为{123, 78, 36, 3},归并後生成的新数组Z为{1, 3, 12, 23, 36, 37, 78, 123}。

void sorted(int up[], int down[], int merged[], int n)

{

int i, j, k, m;

i=k=0; j=n-1;

while( (1) )

if(up[i]<=down[j])

{

(2) ;

i++;

k++;

}

else

{

merged[k]== (3) ;

j--;

k++;

}

if(i==n&&j>=0)

for( ; j>=0; j--) merged[k++]= (4) ;

if(j==0&&i

for( ; i

}

void main()

{

int pu[]={1, 12, 23, 37}, down[]={123, 78, 36, 3}, merged[8], k;

sorted(up, down, merged, 4);

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

printf(“%5d ”, merged[k]);

printf(“\n ”);

}

20.编写完整的程序,求3×4矩阵中的最大元素及其所在行和列的位置。

21.设计函数,求整数n 的阶乘,并在主函数中调用该函数(通过循环结构)计算下列多项式: y=1!+3!+5!+7!

22.求所有这样的三位数,这些三位数等与其各位数字的立方和。

例如: 153 = 1*1*1 + 5*5*5 + 3*3*3.

23.编写完整的程序,用公式 ...!

1...!31!21!111++++++=n e

计算 e 的近似值,直到某项小于10-7为止.

24.填空, 本程序的功能是把两个字符串合并并且按升序排列。首先对字符串a 按ASCII 码值从小到大升序排列,然后把字符串b 中的字符按升序规则插入到已排好序的字符串a 中去。

# include

# include

main()

{ int i,j,k,n;

char a[80]=”zkcvbn ”,b[80]=”askd ”;

n=strlen(a); for( (1) ;i++) for( (2) ;j++ )

if(a[j]

k=a[i],a[i]=a[j],a[j]=k;

for(k=0;b[k];k++)

{ for(j=0;b[k]>a[j]&&a[j];j++);

for(i=n;i>=j;i--) (3) ; (4) ; a[ (5) ]=’\0’;

}

printf(“\nmerge string is %s”,a);

}

25.下列程序有三个错误,请纠正。

以下程序的功能是输入一个字符串,并将其中的字符’a’用字符串’shu’替代後输出。如输入为“123abcaHello”,则输出为“123shubcshuHello”。

#include

void main()

{

int i; char line[81];

scanf(“%s”, &line);

for(i=0; line[i]!=’\n’; i++)

if(line[i]==’a’)

printf(“shu”);

else

printf(“%s”, line[i]);

}

26.下列程序有三个错误,请纠正。

以下程序实现对输入的长度小于100的英文字母串(空格表示结束)进行头尾相接,围成一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI, IJ, ST, 总共出现3次)。

#include

void main()

{

char s[100];

int k, len, no;

scanf(“%s”, s);

len=strlen(s);

s[len]=s[0];

s[len++]=’\0’;

for(k=0; k

if(s[k-1]+1==s[k]) {

printf(“%c %c\n”, s[k-1], s[k]);

no++;

}

printf(“%d\n”, no);

}

27.填空。

【问题描述】已知X 和Y 是两个整型数组,而且X 中的数据按从小到大的顺序排列,Y

中的数据按从达到小的顺序排列。以下程序将X 和Y 中的数归并,并按从小到大的顺序

保存到整型数组Z 中,然后输出数组Z 中的各个元素。例如,X 数组为{1, 12, 23, 37},

Y 数组为{123, 78, 36, 3},归并後生成的新数组Z 为{1, 3, 12, 23, 36, 37, 78, 123}。

void sorted(int up[], int down[], int merged[], int n)

{

int i, j, k, m;

i=k=0; j=n-1; while( (1) )

if(up[i]<=down[j])

{ (2) ;

i++;

k++;

}

else

{ merged[k]== (3) ;

j--;

k++;

}

if(i==n&&j>=0)

for( ; j>=0; j--) merged[k++]= (4) ;

if(j==0&&i

for( ; i

}

void main()

{

int pu[]={1, 12, 23, 37}, down[]={123, 78, 36, 3}, merged[8], k;

sorted(up, down, merged, 4);

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

printf(“%5d ”, merged[k]);

printf(“\n ”);

}

28.π的值可以使用下公式计算

+??+?++=7

3523152313112π 请编写函数compute_pi(double eps)计算π的近似值,当公式中某一项的值小于eps (例

如,eps=1e-5)时,停止计算并返回结果。

29.改错。程序中有三个错误,请纠正。

用冒泡排序法求出由21个整数组成的中间值,并输出所有大于中间值的偶数。

【程序】

#include

void main() {

int I, j, temp;

int array[21];

for(i=0; i<21; i++ ) scanf("%d", array[i]);

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

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

if(array[j]>array[j+1])

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

printf("%d",array[10]);

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

if(array[i]/2==0) printf(" %d ", array[i]);

}

30.改错。程序中有三个错误,请纠正。

用下面的方法可以计算y年m月d日是星期几(w):

w=[y-1+(y-1)/4-(y-1)/100+(y-1)/400+y_d(y, m, d)]%7

其中,符号/表示计算整数商,%表示计算余数,y_d(y, m, d)表示y年m月d日是同年元旦算起到该日的总天数。

【程序】

int day_tab[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int y_d(int y, int m, int d) {

int i, all;

y=y%4==0&&y%100||y%400==0;

for(i=0; i<=m; i++) all+=day_tab[i]; /* 统计某月份(m月)之前的天数 */ all+=y; /* 对闰年考虑2月份是29天 */

return all+d;

}

void main() {

int y=2005, m=7, d=11, w;

w=y-1+(y-1)/4 - (y-1)/100 + (y –1) / 400 + y_d(y, m, d);

w%=7;

printf("%d 年%d 月%d 日是星期%d\n", y, m, d, w);

}

31.π的值可以使用下公式计算

+??+?++=7

3523152313112π

请编写函数compute_pi(double eps)计算π的近似值,当公式中某一项的值小于eps (例

如,eps=1e-5)时,停止计算并返回结果。

32.改错。程序中有三个错误,请纠正。

用冒泡排序法求出由21个整数组成的中间值,并输出所有大于中间值的偶数。

【程序】

#include

void main() {

int I, j, temp;

int array[21];

for(i=0; i<21; i++ ) scanf("%d", array[i]);

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

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

if(array[j]>array[j+1])

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

printf("%d",array[10]);

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

if(array[i]/2==0) printf(" %d ", array[i]);

}

33.改错。程序中有三个错误,请纠正。

用下面的方法可以计算y 年m 月d 日是星期几(w ):

w=[y-1+(y-1)/4-(y-1)/100+(y-1)/400+y_d(y, m, d)]%7

其中,符号/表示计算整数商,%表示计算余数,y_d(y, m, d)表示y 年m 月d 日是同年元

旦算起到该日的总天数。

【程序】

int day_tab[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int y_d(int y, int m, int d) {

int i, all;

y=y%4==0&&y%100||y%400==0;

for(i=0; i<=m; i++) all+=day_tab[i]; /* 统计某月份(m 月)之前的天数 */

all+=y; /* 对闰年考虑2月份是29天 */

return all+d;

}

void main() {

int y=2005, m=7, d=11, w;

w=y-1+(y-1)/4 - (y-1)/100 + (y –1) / 400 + y_d(y, m, d);

w%=7;

printf("%d 年%d 月%d 日是星期%d\n", y, m, d, w);

}

34.编写完整的程序,求3×4矩阵中的最大元素及其所在行和列的位置。

35.设计函数,求整数n 的阶乘,并在主函数中调用该函数(通过循环结构)计算下列多项式: y=1!+3!+5!+7!

36.求所有这样的三位数,这些三位数等与其各位数字的立方和。

例如: 153 = 1*1*1 + 5*5*5 + 3*3*3.

37.编写完整的程序,用公式 ...!

1...!31!21!111++++++=n e

计算 e 的近似值,直到某项小于10-7为止.

38.填空, 本程序的功能是把两个字符串合并并且按升序排列。首先对字符串a 按ASCII 码值从小到大升序排列,然后把字符串b 中的字符按升序规则插入到已排好序的字符串a 中去。

# include

# include

main()

{ int i,j,k,n;

char a[80]=”zkcvbn ”,b[80]=”askd ”;

n=strlen(a); for( (1) ;i++) for( (2) ;j++ )

if(a[j]

k=a[i],a[i]=a[j],a[j]=k;

for(k=0;b[k];k++)

{ for(j=0;b[k]>a[j]&&a[j];j++);

for(i=n;i>=j;i--) (3) ; (4) ; a[ (5) ]=’\0’;

}

printf(“\nmerge string is %s ”,a);

}

39.下列程序有三个错误,请纠正。

以下程序的功能是输入一个字符串,并将其中的字符 ’a ’ 用字符串’shu ’替代後输

出。如输入为“123abcaHello ”,则输出为“123shubcshuHello ”。

#include

void main()

{

int i; char line[81];

scanf(“%s ”, &line);

for(i=0; line[i]!=’\n ’; i++)

if(line[i]==’a ’)

printf(“shu”);

else

printf(“%s”, line[i]);

}

40.下列程序有三个错误,请纠正。

以下程序实现对输入的长度小于100的英文字母串(空格表示结束)进行头尾相接,围成一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI, IJ, ST, 总共出现3次)。

#include

void main()

{

char s[100];

int k, len, no;

scanf(“%s”, s);

len=strlen(s);

s[len]=s[0];

s[len++]=’\0’;

for(k=0; k

if(s[k-1]+1==s[k]) {

printf(“%c %c\n”, s[k-1], s[k]);

no++;

}

printf(“%d\n”, no);

}

41.填空。

【问题描述】已知X和Y是两个整型数组,而且X中的数据按从小到大的顺序排列,Y 中的数据按从达到小的顺序排列。以下程序将X和Y中的数归并,并按从小到大的顺序保存到整型数组Z中,然后输出数组Z中的各个元素。例如,X数组为{1, 12, 23, 37},Y数组为{123, 78, 36, 3},归并後生成的新数组Z为{1, 3, 12, 23, 36, 37, 78, 123}。

void sorted(int up[], int down[], int merged[], int n)

{

int i, j, k, m;

i=k=0; j=n-1;

while( (1) )

if(up[i]<=down[j])

{

(2) ;

i++;

k++;

}

else

{ merged[k]== (3) ;

j--;

k++;

}

if(i==n&&j>=0)

for( ; j>=0; j--) merged[k++]= (4) ;

if(j==0&&i

for( ; i

}

void main()

{

int pu[]={1, 12, 23, 37}, down[]={123, 78, 36, 3}, merged[8], k;

sorted(up, down, merged, 4);

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

printf(“%5d ”, merged[k]);

printf(“\n ”);

}

42.π的值可以使用下公式计算

+??+?++=7

3523152313112π 请编写函数compute_pi(double eps)计算π的近似值,当公式中某一项的值小于eps (例

如,eps=1e-5)时,停止计算并返回结果。

43.改错。程序中有三个错误,请纠正。

用冒泡排序法求出由21个整数组成的中间值,并输出所有大于中间值的偶数。

【程序】

#include

void main() {

int I, j, temp;

int array[21];

for(i=0; i<21; i++ ) scanf("%d", array[i]);

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

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

if(array[j]>array[j+1])

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

printf("%d",array[10]);

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

if(array[i]/2==0) printf(" %d ", array[i]);

}

44.编写完整的程序,求3×4矩阵中的最大元素及其所在行和列的位置。

45.设计函数,求整数n 的阶乘,并在主函数中调用该函数(通过循环结构)计算下列多项式: y=1!+3!+5!+7!

46.求所有这样的三位数,这些三位数等与其各位数字的立方和。

例如: 153 = 1*1*1 + 5*5*5 + 3*3*3.

47.编写完整的程序,用公式 ...!

1...!31!21!111++++++=n e

计算 e 的近似值,直到某项小于10-7为止.

48.填空, 本程序的功能是把两个字符串合并并且按升序排列。首先对字符串a 按ASCII 码值从小到大升序排列,然后把字符串b 中的字符按升序规则插入到已排好序的字符串a 中去。

# include

# include

main()

{ int i,j,k,n;

char a[80]=”zkcvbn ”,b[80]=”askd ”;

n=strlen(a); for( (1) ;i++) for( (2) ;j++ )

if(a[j]

k=a[i],a[i]=a[j],a[j]=k;

for(k=0;b[k];k++)

{ for(j=0;b[k]>a[j]&&a[j];j++);

for(i=n;i>=j;i--) (3) ; (4) ; a[ (5) ]=’\0’;

}

printf(“\nmerge string is %s ”,a);

}

49.下列程序有三个错误,请纠正。

以下程序的功能是输入一个字符串,并将其中的字符 ’a ’ 用字符串’shu ’替代後输

出。如输入为“123abcaHello ”,则输出为“123shubcshuHello ”。

#include

void main()

{

int i; char line[81];

scanf(“%s”, &line);

for(i=0; line[i]!=’\n’; i++)

if(line[i]==’a’)

printf(“shu”);

else

printf(“%s”, line[i]);

}

50.下列程序有三个错误,请纠正。

以下程序实现对输入的长度小于100的英文字母串(空格表示结束)进行头尾相接,围成一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI, IJ, ST, 总共出现3次)。

#include

void main()

{

char s[100];

int k, len, no;

scanf(“%s”, s);

len=strlen(s);

s[len]=s[0];

s[len++]=’\0’;

for(k=0; k

if(s[k-1]+1==s[k]) {

printf(“%c %c\n”, s[k-1], s[k]);

no++;

}

printf(“%d\n”, no);

}

51.填空。

【问题描述】已知X和Y是两个整型数组,而且X中的数据按从小到大的顺序排列,Y 中的数据按从达到小的顺序排列。以下程序将X和Y中的数归并,并按从小到大的顺序保存到整型数组Z中,然后输出数组Z中的各个元素。例如,X数组为{1, 12, 23, 37},Y数组为{123, 78, 36, 3},归并後生成的新数组Z为{1, 3, 12, 23, 36, 37, 78, 123}。

void sorted(int up[], int down[], int merged[], int n)

{

int i, j, k, m;

i=k=0; j=n-1; while( (1) )

if(up[i]<=down[j])

{ (2) ;

i++;

k++;

}

else

{ merged[k]== (3) ;

j--;

k++;

}

if(i==n&&j>=0)

for( ; j>=0; j--) merged[k++]= (4) ;

if(j==0&&i

for( ; i

}

void main()

{

int pu[]={1, 12, 23, 37}, down[]={123, 78, 36, 3}, merged[8], k;

sorted(up, down, merged, 4);

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

printf(“%5d ”, merged[k]);

printf(“\n ”);

}

52.π的值可以使用下公式计算

+??+?++=7

3523152313112π 请编写函数compute_pi(double eps)计算π的近似值,当公式中某一项的值小于eps (例

如,eps=1e-5)时,停止计算并返回结果。

53.改错。程序中有三个错误,请纠正。

用冒泡排序法求出由21个整数组成的中间值,并输出所有大于中间值的偶数。

【程序】

#include

void main() {

int I, j, temp;

int array[21];

for(i=0; i<21; i++ ) scanf("%d", array[i]);

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

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

if(array[j]>array[j+1])

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

printf("%d",array[10]);

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

if(array[i]/2==0) printf(" %d ", array[i]);

}

54.改错。程序中有三个错误,请纠正。

用下面的方法可以计算y年m月d日是星期几(w):

w=[y-1+(y-1)/4-(y-1)/100+(y-1)/400+y_d(y, m, d)]%7

其中,符号/表示计算整数商,%表示计算余数,y_d(y, m, d)表示y年m月d日是同年元旦算起到该日的总天数。

【程序】

int day_tab[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int y_d(int y, int m, int d) {

int i, all;

y=y%4==0&&y%100||y%400==0;

for(i=0; i<=m; i++) all+=day_tab[i]; /* 统计某月份(m月)之前的天数 */ all+=y; /* 对闰年考虑2月份是29天 */

return all+d;

}

void main() {

int y=2005, m=7, d=11, w;

w=y-1+(y-1)/4 - (y-1)/100 + (y –1) / 400 + y_d(y, m, d);

w%=7;

printf("%d 年%d 月%d 日是星期%d\n", y, m, d, w);

}

55.求所有这样的三位数,这些三位数等与其各位数字的立方和。

例如: 153 = 1*1*1 + 5*5*5 + 3*3*3.

56.改错。程序中有三个错误,请纠正。

用下面的方法可以计算y年m月d日是星期几(w):

w=[y-1+(y-1)/4-(y-1)/100+(y-1)/400+y_d(y, m, d)]%7

其中,符号/表示计算整数商,%表示计算余数,y_d(y, m, d)表示y年m月d日是同年元旦算起到该日的总天数。

【程序】

int day_tab[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int y_d(int y, int m, int d) {

int i, all;

y=y%4==0&&y%100||y%400==0;

for(i=0; i<=m; i++) all+=day_tab[i]; /* 统计某月份(m 月)之前的天数 */

all+=y; /* 对闰年考虑2月份是29天 */

return all+d;

}

void main() {

int y=2005, m=7, d=11, w;

w=y-1+(y-1)/4 - (y-1)/100 + (y –1) / 400 + y_d(y, m, d);

w%=7;

printf("%d 年%d 月%d 日是星期%d\n", y, m, d, w);

}

57.编写完整的程序,求3×4矩阵中的最大元素及其所在行和列的位置。

58.设计函数,求整数n 的阶乘,并在主函数中调用该函数(通过循环结构)计算下列多项式: y=1!+3!+5!+7!

59.编写完整的程序,用公式 ...!

1...!31!21!111++++++=n e

计算 e 的近似值,直到某项小于10-7为止.

60.填空, 本程序的功能是把两个字符串合并并且按升序排列。首先对字符串a 按ASCII 码值从小到大升序排列,然后把字符串b 中的字符按升序规则插入到已排好序的字符串a 中去。

# include

# include

main()

{ int i,j,k,n;

char a[80]=”zkcvbn ”,b[80]=”askd ”;

n=strlen(a); for( (1) ;i++) for( (2) ;j++ )

if(a[j]

k=a[i],a[i]=a[j],a[j]=k;

for(k=0;b[k];k++)

{ for(j=0;b[k]>a[j]&&a[j];j++);

for(i=n;i>=j;i--) (3) ; (4) ; a[ (5) ]=’\0’;

}

printf(“\nmerge string is %s”,a);

}

61.编写完整的程序,求3×4矩阵中的最大元素及其所在行和列的位置。

62.下列程序有三个错误,请纠正。

以下程序的功能是输入一个字符串,并将其中的字符’a’用字符串’shu’替代後输出。如输入为“123abcaHello”,则输出为“123shubcshuHello”。

#include

void main()

{

int i; char line[81];

scanf(“%s”, &line);

for(i=0; line[i]!=’\n’; i++)

if(line[i]==’a’)

printf(“shu”);

else

printf(“%s”, line[i]);

}

63.下列程序有三个错误,请纠正。

以下程序实现对输入的长度小于100的英文字母串(空格表示结束)进行头尾相接,围成一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI, IJ, ST, 总共出现3次)。

#include

void main()

{

char s[100];

int k, len, no;

scanf(“%s”, s);

len=strlen(s);

s[len]=s[0];

s[len++]=’\0’;

for(k=0; k

if(s[k-1]+1==s[k]) {

printf(“%c %c\n”, s[k-1], s[k]);

no++;

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言上机试题

1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能就是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 2:第2题请编写函数fun,它的功能就是:求出1到100之内能北7或者11整除,但不能同时北7与11整除的所有证书,并将她们放在a所指的数组中,通过n返回这些数的个数。 3:第3题请编写函数void fun(int x,int pp[],int *n),它的功能就是:求出能整除x且不就是偶 数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"至U "z"26各字母各自出现的次数,并依次放在pp所指的数组中。 5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能就是:将大于整数m且 紧靠m的k各素数存入xx所指的数组中。 6:第6题请编写一个函数void fun(char a[],char[],int n),其功能就是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 7:第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下 标并存放在k所指的储存单元中。 8:第8题编写函数fun,功能就是:根据以下攻势计算s,计算结果作为函数值返回『通过形参 传入。S=1 + 1/(1+2)+1/(1+2+3)+ ??…、+1/(1+2+3+4+ ??…+n) 9:第9题编写一个函数fun,它的功能就是:根据以下公式求p的值,结果由函数值带回。M 与n为两个正整数,且要求m>n。p=m!/n!(m-n)! 10:第10题编写函数fun,它的功能就是:利用以下的简单迭代方法求方程cos(x)-x=0的一个 实根。 迭代步骤如下:(1)取x1初值为0、0;⑵x0=x1,把x1的值赋各x0; (3) x1=cos(x0),求出一个新的x1; (4) 若x0-x1的绝对值小于0、000001,则执行步骤(5),否则执行步骤(2); (5) 所求x1就就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=0、739085。 11:第11题下列程序定义了nx n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能就是:使数组左下半三角元素中的值全部置成0。 12:第12题下列程序定义了n x n的二维数组,并在主函数中赋值。请编写函数fun,函数的 功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13:第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt 指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。 14:第14题请别写函数fun,函数的功能使求出二维数组周边元素之与,作为函数值返回。二 维数组中的值在主函数中赋予。 15:第15题请编写一个函数unsigned fun(unsigned w),w 使一个大于10的无符号整数,若w 使n(n>2)位的整数,则函数求出w后n-1位的数作为函数值返回。 16:第16题请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树, 并对第三位进行四舍五入(规定h中的值位正数)。 17:第17题请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。 18:第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。 19:第19题编写函数fun,该函数的功能就是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。20:第20题编写函数int fun(int lim,int aa[max]),该函数的功能就是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 21:第21题请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

C语言上机考试题

考试时间120分钟题目中所有要求统计或输出的地方都要用printf函数输出相关内容要求:新建一个以自己中文姓名命名的文件夹,将如下题目的答案保存在该文件夹中,各题命名要求Exam1.c,Exam2.c,Exam3.c,Exam4.c,Exam5.c 只需提交每个题目的源文件 1.定义一个字符数组s[50],从键盘输入如下字符串给s数组中,统计其中数字字符的个数和英文字母的个数以及特殊字符的个数。(要求:输入的字符为:“123ABCDhijkop#&%*&!”)(本题5分) 输入功能,3个统计 2.从键盘输入10个元素给数组a,然后将这些元素逆向复制到数组b中(要求:输入的这10个数为:1,2,3,4,5,6,7,8,9,10)。(本题5分) 输入,逆序2个功能,错一个扣2分 3.使用循环嵌套,打印输出如下图形结果(提示使用两次循环嵌套)。 (本题5分) 没有中文后面扣1分 实现一半扣2分 4.从键盘上输入一个字符,如果是’M’,输出Mondey,’T’输出Tuesday,’W’输出Wednesday,’R’输出Tursday,’F’输出Friday,’S’输出Saturday,’U’输出Sunday,否则输出Error(本题5分)输入字符,switch语句,细节有错扣0.5 5.从键盘上输入10个学生的数学成绩,使用冒泡排序实现对成绩的排序功能(排序后的成绩按从低到高排列,效果如下), 输出排序后的学生成绩,输出最高成绩,输出最低成绩,将55-60之间的成绩(含55,不含60)修改为60,并统计被修改的成绩个数,统计及格人数,统计95(含95,优秀)分以上的学生成绩人数,输出及格率和优秀率(>=60,及格,>=95优秀)。(要求:输入的10个

C语言上机题库百科园第2章!南信大!

第二章 若有数学式3ae bc,则不正确的C语言表达式是() A.3*a*e/b*c B.a/b/c*e*3 C.3*a*e/b/c D.a*e/c/b*3 设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为()。 A.4 B.3 C.2 D.1 下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是() A.(x/2*2-x)==0 B.!(x%2) C.!(x%2==0) D.x%2==0 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A.char B.double C.不确定 D.float 在C语言中,要求运算数必须是整型的运算符是( ) A.% B./ C.++ D.!= 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。 A.4

C.16 D.52 C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A.必须为下划线 B.必须为字母 C.可以是字母、数字和下划线中的任意一种 D.必须为字母或下划线 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( ) A.不知道a的值,不能确定 B.0 C.2 D.1 判断字符型变量c1是否为数字字符的正确表达式为( ) A.(c1>='0')&&(c1<='9') B.(c1>=0)&&(c1<=9) C.('0'>=c1)||('9'<=c1) D.'0'<=c1<='9' 下面四个选项中,均是合法的用户标识符的选项是()。 A._123 temp INT B.A p_o do C.b-a goto int D.float lao _A 以下关于C语言数据类型使用的叙述中错误的是( ) A.若要处理如"人员工资"的相关数据,单精度类型 B.若只处理"真"和"假"两种逻辑值,应使用逻辑类型 C.若要保存带有多位小数的数据,应使用双精度类型 D.若要准确无误差的表示自然数,应使用整数类型 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。 A.7 B.8 C.6 D.2 下面正确的字符常量是()

C语言上机试题

1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。 3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。 5: 第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。 6: 第6题请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n 中存放指定的下标。 7: 第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。 8: 第8题编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n) 9: 第9题编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。 p=m!/n!(m-n)! 10: 第10题编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。 迭代步骤如下:(1)取x1初值为0.0; (2)x0=x1,把x1的值赋各x0; (3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=0.739085。 11: 第11题下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 12: 第12题下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13: 第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include int main(void) { char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf("%d\n",sum); return 0; } 3.12输入三个整数,求其平均值。 输入格式: 3 5 7 输出格式: 5 #include int main(void) { int a,b,c,aver; scanf("%d %d %d",&a,&b,&c); aver=(a+b+c)/3; printf("%d\n",aver); return 0; } 3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。 输入格式: 80.0 输出格式: 26.67 #include int main(void) { float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f\n",c); return 0; } 3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。 输入格式: 1357 输出格式: 16 #include int main(void) { int num; int a,b,c,d,total; scanf("%d",&num); a=num/1000; b=(num-a*1000)/100; c=(num-a*1000-b*100)/10; d=num-a*1000-b*100-c*10; total=a+b+c+d; printf("%d\n",total); return 0; } 3.15输入一大写字母,输出对应的小写字母。 输入格式: A 输出格式: a #include int main(void) { char c1,c2;

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

c语言上机题库 (1)

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 2、编写程序求无理数e 的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。

11、请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun用比较法对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。 13、编写main程序调用函数fact求解从m个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m不能小于n,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。 19、对任意输入的x,用下式计算并输出y 的值。 5 x<10 y= 0 x=10 -5 x>10 20、求给定正整数m以内的素数之和。 例如:当m=20时,函数值为77。 21、判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大

c语言上机考试训练题库及答案

上机考试习题集 1.编写程序,一次输入5个学生的3门课成绩,每输入一个学生的3门成绩后,立即统计并输出该学生的总分和平均分。 #include "stdio.h" void main() { int score[5][3], i,j; float sum[5],average[5]; printf("请分别输入三个学生的成绩:\n"); for(i=0;i<5;i++) { sum[i]=0; for(j=0;j<3;j++) {scanf("%d",&score[i][j]); average[i]=0; sum[i]+=score[i][j]; average[i]=sum[i]/5; } } for(i=0;i<5;i++) printf("第%d个学生的总分为:%f,平均成绩为:%f\n",i+1,sum[i],average[i]); } 2 、编写程序,提示用户从键盘输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后在显示器上输出此数,以便验证处理是否正确。 #include #include double rounding(double x,int n); void main() { double x,x1; int n; printf("请输入一个浮点数:\n"); scanf("%lf",&x); printf("请输入给定的小数位:\n"); scanf("%d",&n); x1=rounding(x,n); printf("圆整后的数为:\n%.*lf\n",n,x1); } double rounding(double x,int n)

C语言程序设计课程C语言上机考试题—2014

1、从键盘输入10个整数,对这10个数排序(由小到大)后输出。 2、从键盘输入10个整数,对这10个数排序(由大到小)后输出。 3、对于一个自然数,如果该数的所有因子之和正好等于该数,则该数称为完数。统计1000以内的完数个数。 4、编写主函数和一个函数int diff(int year, int m1, int d1, int m2, int d2)。(1)函数diff计算year年的m1月d1日至m2月d2日之间相隔的天数(假设m1<=m2);(2)主函数中输入某年的两个日期,调用diff函数计算它们之间相隔的天数,并输出。 5、编写主函数和一个函数void merge(int a[], int b[], int c[])。要求是:(1)函数merge对两个已是升序的数组a、b进行归并,归并后的结果仍然是升序的,并通过形参c返回;(2)主函数:定义长度为5的数组a,并升序初始化;定义长度为8的数组b,并升序初始化;调用merge函数对数组a、b进行归并,输出归并结果。 6、从键盘输入一个0~99999之间的整数。 ①判断它是一个几位数; ②将该数的各位数字按逆序输出。 7、输入一行字符,统计其中有多少个单词并输出,单词之间用空格符分隔开。 8、输入10个整数,判断它们是否为素数。要求:编写一个函数int prime(int m)来判断形参变量m是否为素数,如果是素数则返回1,否则返回0。 9、输入10个学生的成绩,求平均成绩。要求控制成绩输入的正确性,即控制输入的成绩必须为0~100分。 10、编写主函数和一个函数int monthDay(int year, int month)。(1)函数monthDay 计算year年month月的天数,并返回;(2)在主函数中输入一个日期(年、月、日),计算该日是当年的第几天(说明:需要调用monthDay函数)。 11、写两个函数int gcd(int m, int n)和int lcm(int m, int n),分别求两个正整数m 和n的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数的值在主函数中从键盘输入。 12、有0、1、2、3、4五个数字,能组成多少个互不相同且无重复数字的三位数?并计算这些三位数之和。 13、输出2至1000之间的所有同构数,所谓同构数是指它出现在它的平方数的右端。例如,5、6、25的平方分别等于25、36、625,所以5、6和25都是同构数。 14、编写一个函数,将一个数插入到已是升序的数组中,且插入后该数组仍是升序数组。已是升序数组的内容由主函数给出,待插入的数在主函数中输入。 15、编写一个程序,查找某数是否在给定的升序数组中,如果在则输出“Find success!”并输出它是第几个数,否则输出“No find!”。 16、有4个学生,每个学生有5门课程的成绩,编写一个程序计算每一个学生5门课程的平均成绩。 17、有4个学生,每个学生有5门课程的成绩,编写一个程序统计每一个学生有几门不及格的课程。 18、有4个学生,每个学生有5门课程的成绩,编写一个程序计算每一门课程4个学生的平均成绩。 19、有4个学生,每个学生有5门课程的成绩,编写一个程序统计每一门课程有几个不及格的学生。

2020年全国计算机等级考试二级c语言上机精选题库(共80套)

2020年全国计算机等级考试二级c语言上机精选题库(共80套) 第1套试题 第一题:给定程序中,函数fun的功能是:计算N*N矩阵的主对角元素和反向对角元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 4 fun(int t[][N], int n) { int i, sum; ___1___; for (i=0; i

第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。 ,11=A ,1112A +=A ,1123A +=A … ,1 11-A +=A n n 例如,若n=10,则应输出0.617978。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不要更改程序的结构! #include #include /********found********/ fun(int n) { double A = 1; int i; /********found********/ for(i=2;i #include void fun (int a, int b, long *c) { }

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

计算机二级C语言上机考试操作步骤及流程

二级C语言上机考试操作步骤 一、进入考试系统 单击桌面上的“考试系统”图标,进入考试启动界面。“考试启动界面”如图1所示。 图1 二、输入考生信息 进入考试界面后,单击“开始登录”按钮即可进入考试环境进行“考生信息”的输入。“信息输入”如图2所示。 图2 考生输入准考证号如“2427180018001800”后,单击“考号验证”按钮进行信息核实,系统会弹出如图3所示的对话框。 图3

在确定考生信息完全正确时,单击“是”按钮,进入答题界面,如下图所示,上方含有“程序填空题”、“程序修改题”、“程序设计题”三个按钮, 三、开始答题 本次考试共有50套题,每一套题的填空、改错和编程题的答案均附在后面。学生进入上述考试界面后,首先点击程序设计题,根据程序设计题从而明白是哪一套题的组合,然后开始正式答题。过程如下: 1.程序填空题 单击考试界面中的“程序填空题”按钮后,题目显示区将显示出题目对应的文字叙述信息。通过文字叙述可以了解到该题目的考试内容。然后单击左上角“答题”菜单中的“启动Microsoft Visual C++”菜单项进入“Visual C++ 6.0”系统环境界面,如下图所示。 进入系统环境后,执行左上角的“文件|打开”命令,系统弱出“打开”对话框,选择“blank1.c”程序文件,

点击左下角的“打开”按钮,如图4所示。 图4 打开“blank1.c”程序文件后,开始填空。填空方法如下: (1)在程序中找到“******** found *******”标识位置。 (2)把“found ”标识位置下面的需要填空的“占位符”删除(需要连横线一起删除),将程序的答案写在对应位置。例如下图所示。 原“blank1.c ”程序图: 打开

历年全国计算机等级考试-二级C语言上机考试题库及答案

1.填空 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.c中 不得增行或删行,也不得更改程序的结构! void check(); /**********found**********/ int fun(___1___ *std) { /**********found**********/ ___2___ *fp; int i; if((fp=fopen("myfile5.dat","wb"))==NULL) return(0); printf("\nOutput data to file !\n"); for(i=0; i

二级C语言上机题库及答案

第一套题 上机填空: #include double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; /**********found**********/ x=__1__/4; /**********found**********/ while(x __2__ e) { s=s+k*x; k=k* (-1); t=2*i; /**********found**********/ x=__3__/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); 第一处答案:3.0 第二处答案:> 第三处答案:(2*i+1)或者(t+1) 上机改错题: #include /************found************/ void fun ( int n )

{ int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /************found************/ s = s + (Double)a / b; c = a; a = a + b; b = c; } return s; } main( ) { int n = 5; printf( "\nThe value of function is: %lf\n", fun ( n ) ); } 第一处改错:将:void fun ( int n ) 改为double fun ( int n ) 第二处改错:s = s + (Double)a / b; 改为s = s + (double)a / b; 第二套题 上机填空题 #include double fun(int n) { int i; double s, t; /**********found**********/ s=__1__; /**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; } return s; } main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); }

大学本科C语言上机考试题

C语言程序设计上机考试题 班级:姓名:学号: 使用C语言编写下列程序(20分×5=100分) 1、输入3个整型数据,求出最大数和最小数。 #include int main() {inta,b,c,e,d,f,g; printf("请输入三个数\n"); scanf("%d,%d,%d",&a,&b,&c); d=(a>b?a:b); e=(d>c?d:c); printf("Max is %d\n",e); f=(a int main() {float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while(score>100||score<0)); {printf("\n输入有误,请输入); scanf("%f",&score); } switch((int)(score/10)) {case 10: case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break;

case 5: case 4: case 3: case 2: case 1: case 0:grade='E'; } printf("成绩是%5.1f,相应的等级是%c\n",score.grade); return 0; } 3、编写一个四则运算程序,输出计算结果。 #include int main() {intc,d,e; floata,b,f; printf("请输入两个数"); scanf("%f,%f",&a,&b); c=a+b; d=a-b; e=a*b; f=a/b; printf("加法结果为%d\n",c); printf("减法结果为%d\n",d); printf("乘法结果为%d\n",e); printf("除法结果为%f\n",f); return 0; } 4.100以内的素数 从键盘输入一个正整数,判断该整数是否为素数。 #include int main() { intn,i; printf("\n"); scanf("%d",&n); for (i=2;i<=n-1;i++) if(n%i==0) break; if(i

C语言上机试题答案

//vc1 //prog1.cpp //设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。#include"stdio.h" main() { int a[3],i,j,t; for(i=0;i<3;i++) { scanf("%d",&a[i]); } for(i=0;i<9;i++) /*此处的i可以小于任意一个大于6的整数*/ { for(j=0;j<2;j++) { if(a[j]>a[j+1]) t=a[j],a[j]=a[j+1],a[j+1]=t; } } printf("The three data from small to big is:"); for(i=0;i<3;i++) printf("%d ",a[i]); } //vc1 //prog2.cpp //求1+3+5+...+95+97+99的和。 #include"stdio.h" main() { int i,sum=0; for(i=1;i<100;i=i+2) sum+=i; printf("1+3+5+....+99=%d\n",sum); } //vc1 //prog3.cpp //写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此

整数为素数”,否则输出“整数非素数”。(注:要求从主函数输入整数)#include"stdio.h" main() { int i,j,k,l=2; printf("输入一个大于3的整数:"); scanf("%d",&i); for(j=2;j=0;i--) printf("%d ",a[i]); for(i=0;i<10;i++) sum+=a[i]; printf("The total is:%d\n",sum); } //vc2 //prog2.cpp //输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。

相关文档