13年6月C语言上机真题

发布 2022-02-28 19:39:28 阅读 5553

一、改错题。

注意事项:

1.标有$error?$的程序行有错,请直接在该行修改;

2.请不要删除或修改$error?$错误标志;

3.请不要将错误行分成多行;

4.请不要修改错误语句的结构或其中表达式的结构,如错误语句:

if((a+b)==x=x+y)).正确形式为if((a+b)!=x=x+y)).若改成:

if((b+a)!=x=x+y)).或if((x=x+y)!=a+b)).或

if((a+b)!=x+=y)).等形式均不得分。

1、题目:

以下程序实现了矩阵的主对角线上的数据和副对角线上的数据求和。矩阵的数据存储在数组a中。例矩阵:

主对角线上的数据和副对角线上的数据求和就是:1+5+9+3+7=25

程序如下:

#include <>

#define n 3

int add(int a[n][n])

int i,s;

s=0; for(i=0;i

if(n%2==0error2$*/

s=s-a[n/2][n/2];

return s;

void main()

int a[n][n],i,j,sum;

printf("please input matrix a:");

for(i=0;i for(j=0;j scanf("%d",&a[i][j]);

sum=add(a[0][0error3$*/

printf("sum=%d",sum);

2、题目:

有n个数据存放在a数组中,请求出这n个数据的最小数,并与数组中第一个位置上的数进行交换。

程序如下:

#define n 12

#include <>

void main()

int a[n]=;

int min,i,t;

min=a[0]; error1$*/

for(i=1;i

a[0]=t; /error3$*/

a[0]=a[min];

a[min]=t;

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

printf("");

3、题目:

将数组中的数按从大到小排序后输出,要求:所有数据输出在一行,且每个数据占4列。

程序如下:

#define n 10

#include<>

void main()

int a[n]=;

int i,j,k;

for(j=1;j for(i=0;i

for(i=0;i printf("%4d",&a[i]);error3$*/

printf("");

4、题目:

计算200到500之间满足下列条件的数之和。

1)这个数的三个数位上的数字积为42;

2)这个数的三个数位上的数字和为12。

程序如下:

#include <>

void main()

int i,g,s,b,sum;

sum=1; /error1$*/

for(i=200;i<=500;i++)

printf("sum=%d",sum);

5、题目:

将数组中的数按从大到小排序后输出,要求:所有数据输出在一行,且每个数据占4列。

程序如下:

#define n 10

#include<>

void main()

int a[n]=;

int i,j,k;

for(j=1;j for(i=0;i

for(i=0;i printf("%4d",&a[i]);error3$*/

printf("");

6、题目:删除一个给定的字符串中第p个字符起连续n个字符,输出删除后的字符串。

例如:字符串s="abcdefghi",p=3,n=2,则输出结果是:abefghi。

程序如下:

#include <>

#include <>

void del(char s,int p,int n)

int i,j;

if(p<1||n<0||p+n-1>strlen(s))

i=perror1$*/

j=p+n-1;

while(s[j]!=0')

s[i]='n'; error2$*/

void main()

char s=abcdefghijk";

int p,n;

printf("please input begin position and number:")

scanf("%d%d",&p,&n);

del(s,p,nerror3$*/

puts(s);

7、题目:若有车的车牌号和罚分记录数据,统计罚分达到或超过12分的车辆总数并输出这些车辆的信息。

说明:id域代表车牌号,score域代表罚分)。

程序如下:

#include <>

struct car

char id[12];

int score;

void main()

int i,n=0;

car c[6]=,error1$*/

a-tt222",12},

b-wj333",12},

c-lc444",5},

f-pc555",6},

b-my666",12}};

printf("id\tscore");

i=0; while(i<6)

i++;

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

8、题目:把字符串s中所有大写字母转换成小写字母,其它字符保持不变。

程序如下:

#include <>

#include <>

void main()

char s[81];

int i;

getchar(s); error1$*/

i=0; while(s[i]!=0')

printf("%c",serror3$*/

11年6月c语言上机试卷 A

南京师范大学2010 2011学年第2学期。c程序设计 课程期末上机试卷 a 考试时间 70分钟,满分 40分,清注意按要求保存文件 试卷密码c01 一 改错题 20分 题目 以下程序的功能是找出所有的3位数的素数,并将其写入文件中。含有错误的源程序如下 include int prime int ...

11年6月c语言上机试卷 B

南京师范大学2010 2011学年第2学期。c程序设计 课程期末上机试卷 b 考试时间 70分钟,满分 40分,清注意按要求保存文件 试卷密码c02 一 改错题 20分 题目 将一个整数插入一个已排序的数组而不改变数组的次序。例如 将34插入数组 1 3 23 28 45 48 89 103 221...

C语言真题

全国计算机等级考试二级笔试试题。基础知识与c语言程序设计。考试时间120分钟,满分100分 1994年4月。1 二进制数101110转换为等值的八进制数是 1 1 a 45b 56c 67d 78 2 cpu是由 2 组成的。2 a 内存储器和控制器b 控制器和运算器。c 内存储器和运算器d 内存储...