2006年北京师范大学452C语言考研试题
1 设圆的半径r=1.5,圆锥高h=3,求圆的周长和椎体体积。用scanf输入数据,输出计算结果。输出时要求有文字说明,取小数点后两位数字。
2 输入两个整数,求它们相除的余数。用带参的宏来实现。
3 求100~200之间的全部素数之和。
4 计算圆周率的近似值,直到最后一项的绝对值小于10的-6为止,圆周率=4*(1-1/3+1/5-1/7+1/9-……)
5 写一个函数,判断一字符串是否回文。回文是指顺序和倒读都一样的字符串。
#include
#include
int hw(char f[25]) {
int a, b;
a = 0; //初始化a 指向f的首地址
b = strlen(f)-1; //指向f的最后一个
while (a <= b) {
if (f[a++] != f[b--]) {
printf("No!\n");
return 0; //程序结束
}
}
printf("Yes!\n");
return 1; //a>=b 是正确的
}
int main() {
char f[25];
int HW;// a, b = 0; 不需要
scanf("%s", f);
HW = hw(f);
return 0;
}
6 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母,数字以及其它字符的个数。
7 将一个磁盘中的二进制文件复制到另一个磁盘中,两个文件名随命令行一起输入。
#include
void main()
{
FILE *from,*to;
char in[100],out[100];
printf("请输入源文件名:\n");
scanf("%s",in);
printf("请输入目标文件名:\n");
scanf("%s",out);
if((from=fopen(in,"r"))==NULL)
{
printf("文件不存在!\n");
exit(0);
}
if((to=fopen(out,"w"))==NULL)
{
printf("创建目标文件失败!\n");
exit(0);
}
printf(".............");
while(!feof(from))
{
fputc(fgetc(from),to);
}
fclose(from);
fclose(to);
}
北京航空航天大学2010年硕士研究生入学测试试题
七.程序设计题(20分)
请编写程序,该程序首先通过键盘输入获得整型数据a和n,然后计算sum=a+aa+aaa+……+(共n 项),最后输出计算结果。例如:当a=5,n=4时,计算sum=5+55+555+5555.
八.程序设计题(15分)
在Unix操作系统中有一条命令,命令的功能是打印文本文件的最后n行。命令格式为:
tail [-n] filename
其中,tail为命令名;参数filename 为文本文件名;参数[-n]表示要打印的行数,该参数是可选的,缺省值为10,既无此参数时,表示打印文件的最后10行,例如,命令
tail -20 example.txt
表示打印文本文件example.txt的最后20行。如果被打印的文本文件中行数少于n行或者少于10行,该命令将打印文件中的所有行。
请用带参数的main函数实现该程序。该程序应该具有一定的错误处理能力。例如,能够处理非法命令参数和非法文件名。
程序中可以使用以下C库函数:
int atoi(char *s)——将数字串转换为相应的整数
fgets(char *s,int n, FILE *fg)——从文件中读入一行;
void *malloc(unsigned size).free——申请和释放内存;
strlen——计算字符串的长度;
strcpy——讲一个字符串拷贝到另一个字符串中;
除此之外,不允许使用其他库函数。
提示:
可以再命令行参数正确性分析过程中获取被打印的文本文件名称以及需要打印的行数等信息。
如果命令行分析正确,可以建立一个不带头结点的单向循环链表存放从文件中独到的内容
2012计算机考研复试题回忆
编写函数Eval,求解一元二次方程ax^2+bx+c=0的解,写出每个参数的含义。
#include //包含iostream的头文件
#include
#include//字