(完整版)程序设计基础试题_10_答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广州大学学年第学期考试卷
课程高级语言程序设计考试形式(开/闭卷,考试/查)
学院系专业班级学号姓名
一、填空题(每空1分,共10分)
1.C源程序的基本单位是(函数)。
2.一个C源程序中至少应包含一个(main()函数)。
3.若a和b均是int型变量,且a和b的初值均为5,则计算表达式a+=b++ 后,a的值为(10 ),b的值为( 6 )。
4.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,b值为( 4 ),c 值为( 2 )。
5.表达式8.2-2/3 的计算结果是(8 )。
6.在C语言中,整数可用三种数制表示,它们分别是(十进制)、(八进制)和(十六进制)。
二、程序计算题(每小题5分,共15分)
1.
# define f(a) printf(“%d”,a)
main()
{ int i,b[]={1,2,3,5,7,9,11,13,15},*p=5+b;
for(i=3;i;i--)
switch(i)
{ case 1:
case 2: f(*p++); break;
case 3: f(*(--p));
}
}
2.
main()
{ int arr_sum(int arr[],int n);
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p,total;
int (*pt)( int arr[],int n);
pt=arr_sum;
p=a[0];
total=(*pt)(p,12);
printf(“total=%d\n”,total);
}
arr_sum(int arr[],int n)
{ int i,sum=0;
for(i=0;i sum=sum+arr[i]; return(sum); } 3.以下有一程序,输出结果是:(10 40 2,0 3,0 )。main() { int x=2,y,z; x*=3+2; printf(“%d\n”,x); x*=y=z=4; printf(“%d\n”,x); x=y=1; z=x++-1; printf(“%d,%d\n”,x,z); z+=-x+++(++y); printf(“%d,%d\n”,x,z); } 三、程序填空题(每空4分,共40分) 1.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一 个小写字母,则把它变成大写字母;其他字符不变。请填空。 main() { char ch; } 2. 下面程序的功能是打印100以内个位数为6且能被3整除的所有数。请填空。#include main() { int i,j; { continue; printf(“%d”,j); } } 3、计算圆周率的近似值的公式是:4*(1 - 1/3 + 1/5 -1/7 +........),精度要求为0.00001.请填空使程序正确运行。(6分) #include main() { int s; float pi,item,n; item=1; pi=0; n=1; s=1; ) { pi=pi+item; n= n+2; } pi= ; printf("pi=%f",pi); } 4.以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如“a”变为“f”,“w”变成“b”。请填空。 #include “studio.h” main() { char c; c=getchar(); if(c<=’a’&&c<=’u’) putchar(c); } 5. 鸡兔共有30只,脚共有90只,下面的程序段是计算鸡兔各有多少只,请填空。 for(x=1;x<=29;x++) { printf(“%d,%d\n”,x,y); } 四.编程(第1小题20分,第2小题15分,共35分) 1.编写一个函数atoi,其作用是将一个整数字符串转换成整数(说明:字符串不能进行四则运算,而整数能进行四则运算)。 int atoi(char *str) { int n,k,i,l; n=0; k=1; for (l=0; '0'<=str[l] && str[l]<='9';l++); for (i=l-1; '0'<=str[i] && str[i]<='9' && i>=0 ;i--) { n += (str[i]-'0')*k; k *= 10; } return n; } 2.利用结构类型编写一个程序,计算一名同学5门功课的平均分,并打印。struct core { float score[5]; }; void main() { int i; float f; struct core student; for (i=0;i<5;i++) { scanf("%f",&f); student.score[i]=f; } printf("\n"); for (i=0;i<5;i++) printf("\n%f",student.score[i]); }