当前位置:文档之家› (完整版)程序设计基础试题_10_答案

(完整版)程序设计基础试题_10_答案

广州大学学年第学期考试卷
课程高级语言程序设计考试形式(开/闭卷,考试/查)
学院系专业班级学号姓名
一、填空题(每空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<n;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 <stdio.h>
main()
{ int i,j;
{
continue;
printf(“%d”,j);
}
}
3、计算圆周率的近似值的公式是:4*(1 - 1/3 + 1/5 -1/7 +........),精度要求为0.00001.请填空使程序正确运行。

(6分)
#include <math.h>
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]);
}。

相关主题