《C语言程序设计》大作业试题A
发布时间:2024-11-21
发布时间:2024-11-21
北京科技大学远程与成人教育学院
2014学年第4次远程课程考试
《C语言程序设计》试题(A卷)
学习中心 专业 学号 姓名________
注意:
1.字迹要工整,易于辨认,凡看不清楚的一律按错误对待。
2.程序的书写要符合程序的书写规范,否则酌情扣分。
一、通过C语言程序设计课程的学习,谈谈对C语言程序设计课程的理解,包括:
1.详细介绍C语言数据类型有哪些?(10分)
答:字符、整型、单精度实型、双精度实型和空类型。
2.C语言控制语句有哪些?(10分)
do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环; for语句:循环,可替代while语句; 只是用法不同;
continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句
1 / 4
多相选择; return语句:返回;
二、编写以下程序,并在计算机上编译运行。
1.输入一个字符串表示的八进制(字符串中最多6位,并且串中只能包含数字0,1,2,3,4,5,6,7,程序不需要检查,可假设满足这一条件),将其转换为十进制数输出。(15分) int ConvertTo10(char* t)
{
int sum=0;
int len=strlen(t);//取得字符串的长度
for (int i=0;i<len-1;i++) {
int a=(t[i]-'0');//把每个字符转换成数字
int c=((len-(i+1))*3);//取得位数,把8化成2^3,c=(字符串长度-1)*3,参考八进制转十进制的公式
int b=2<<(c-1);
sum+=(a*b);
}
sum+=(t[len-1]-'0');//把最后一个加上
return sum;
}
2.编写一个函数,不用strcat函数两个字符串连接起来。(15分)
void main(){ char s1[80],s2[40]; int i=0,j=0; gets(s1); gets(s2); while(s1[i++]!='\0'); i--; while((s1[i++]=s2[j++])!='\0'); printf("%s",s1); }
3.由1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?(15分)
#include<stdio.h>
int main()
2 / 4
{ int sign=0; for(int i=1;i<5;i++){ for(int j=1;j<5;j++){ for(int k=1;k<5;k++){ if(i!=j&&i!=k&&j!=k)
{
printf("%d%d%d\n",i,j,k);
sign++;
} } } } printf("The results is %d",sign); return 0;
}
4.一个整数(10万以下),它加上100后是一个完全平方数(如果一个数的平方根的平方等于该数,这说明此数是完全平方数),再加上168又是一个完全平方数,请问该数是多少?(15分)
#include<stdio.h> int main() { int n,i,flag; for(n=1;n<=100000;n++) { flag=0; for(i=1;i<=n/i;i++) if(n+100==i*i) {flag++;break;} for(i=1;i<=n/i;i++) if(n+268==i*i) {flag++;break;} if(flag==2) printf("%d\n",n); } return 0; }
5.输入三个整数x,y,z,请把这三个数由小到大输出。(10分) main()
{
3 / 4
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/ if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/ printf("small to big: %d %d %d\n",x,y,z);
}
6.编一个程序,计算1 - 3 + 5 - 7 + …… -99 + 101。(10分) #include"stdio.h"
main()
{
int i,sum=0,flag=1; for(i=1;i<=101;i=i+2)
{
sum=sum+i*flag; flag=-flag;
}
printf("sum=%d\n",sum); }
4 / 4