东师2020年春季 《C程序设计(高起专)》离线考核
离线考核《C程序设计(高起专)》
更多作业资源www.openhelp100.com
东北师范大学作业QQ515224986
100分
一、阅读程序,在横线上填空(每空2分,共20分。)
1.百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?
main()
{inthbhmhln=0//hbhmhl分别代表大马,中马和小马
for(hb=0hb<=100hb+=3)
for(hm=0hm<=100hbhm+=(1))
{hl=100hb(2) 东师答案www.openhelp100.com
QQ 5 1 5 2 2 4 9 8 6
if(hb/3+hm/2+2*(3)==100)
{n++
printf("hb=%dhm=%dhl=%d\n"hb/3hm/22*hl)
}
}
printf("n=%d\n"n)
}
2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。
#defineN10
charstr
main()
{intiflag
scanf("%s"str)
sort((4)___)
for(i=0i<Ni++)
printf("%c"str)
printf("\n")
}
sort(charstr)
{intij
chart
for(j=1j<Nj++)
for(i=0(i<Nj)&&(str!=\0)i++)
if(str>str)
{t=str
_(5)____
_(6)____
}
}
3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)
例如矩阵为:
3003
2573
1042
则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。
add(intmintnintarr[])
{intijsum=0
for(i=0i<mi=i+m1)
for(j=0j<nj++)
sum=sum+(7)
for(j=0j<nj=j+n1)
for(i=1(8)i++)
sum=sum+arr
return(sum)
}
4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。
#defineN10
main()
{voidmaxmin(intarr[]int*pt1int*pt2intn)
intarray={1071929407351621}*p1*p2ab
p1=&ap2=&b
maxmin(arrayp1p2N)
printf("max=%dmin=%d"ab)
}
voidmaxmin(intarr[]int*pt1int*pt2intn)
{inti
*pt1=*pt2=arr
for(i=1i<ni++)
{if(arr>*pt1)(9)
if(arr<*pt2)(10)
}
}
二、简要回答下列问题(8分,共40分。)
1.结构化程序设计中常用的三种程序结构是什么?各自用哪些语句来实现?
2.C语言对字符串操作的函数有哪些(举出2个以上)?
3.C语言的构造类型有哪几种?各自适合描述什么样的问题?
4.函数调用有几种方式?函数的实参和形参是怎么进行结合的?
5.do—while循环和while循环的区别是什么?
三、编程题(共40分)
1.一个班级有10名学生,每个学生的信息包括学号,姓名和成绩。编写一函数sort,实现按学生成绩降序排列,排序方法任选。在函数之前,定义出函数中要使用的数据类型。(15分)
2.编写程序打印下面的图形。利用scanf函数由用户输入星号的行数。(10分)
*
**
***
****
*****
3.已知定义int型数组a,数组a中的元素均为三位数。编写函数jsVal(),其功能是:统计出3位数均为偶数的数组元素的个数c。
例如:inta={123246345608420987}则统计结果c=3.(15分)
更多作业资源www.openhelp100.com
东北师范大学作业QQ515224986
页:
[1]