对于没有学习过
湖北普通专升本编程语言的同学们来说,肯定会有一定难度的,同学们在空余时间可以做一做这套C语言程序设计模拟练习题。
一、填空题(每小题2分,共20分)
⑴求正整数m的位数,相应C的算术表达式为intlog(m)+1。
⑵执行程序段“for(i=1;i<15;i=i+4)s=s+i;”后,i的值为17。
⑶程序中使用了C的库函数islower,应包含的头文件为
⑷下列程序段运行时的输出结果是3 4。
char p[]={'a','b','c'},q[]="abc";printf("%d,%dn",sizeof(p),sizeof(q));
⑸下列程序段运行时的输出结果是10。
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%dn",*p+*q);
⑹定义函数f,其功能是计算多项式a0+a1x+a2x2+a3x3+...+an-1xn-1的和,函数f原型是float f(int*a,int x,int n)。
⑺定义函数f,其功能是在一个二维数组中查找最大值的行、列号(要求可传递到主调函数),函数f原型是int f(int**a,int m int n,int*i,int*j)。
⑻x、y均为结构体类型变量,语句“x=y;”在x和y为相同类型的条件下可以执行。
⑼若int类型变量a的当前值是52,执行“a/=2^1;”后,a的值为17。
⑽打开g盘根目录下文本文件aaa.txt用于读数据的语句是fp=fopen("g:\aaa.txt","r");。
二、程序阅读题(每小题8分,共24分)
阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。
1.#include
void main()
{int i,j,a[4][4]={{2,-1,2,7},{2,4,3,5},{1,4,-2,3},{4,-2,8,3}};
for(i=0;i<4;i++)
for(j=0;j<4;j++)a<i>[j]/=a<i><i>;
for(i=0;i<4;i++){
for(j=0;j<4;j++)printf("%4d",a<i>[j]);putchar('n');
}
}
2.#include
int f(int x,int y)
{static int a=1;
return a=a+x+y;
}
void main()
{int a=10,b,c,i;
b=10*a++;
for(i=1;i<3;i++)c=f(a,b);
printf("a,b,c:n%dn%dn%dn",a,b,c);
}
3.#include
#include
void strc(char*strDest,char*strSrc)
{char temp[80],*p;int i=0;
strcpy(temp,strDest+1);
for(p=strDest+1;p<=strDest+strlen(strSrc);p++)*p=strSrc[i++];
*p='';strcat(strDest,temp);
}
void main()
{int i;char a[80]="Windows_xp,word_2003,VC_6.0";
for(i=0;a<i>!='';i++)if(a<i>==',')strc(a+i,"Microsoft");
puts(a);
}
三、程序填空题(每空2分,共24分)
阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。
1.【程序说明】输入m后,输出下列形式(以m等于5为例)的m行、m列数字方阵。
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
#include
void main()
{int i,j,k,m;
⑴;
for(i=1;⑵;i++){
for(j=1;⑶;j++)printf("%d",i+j-1);
for(k=1;j<=m;⑷)printf("%d",k);
printf("n");
}
}
2.【程序说明】输入20个数,然后输出他们的平均值、他们中与平均值之差为最小的数。
#include
#include
⑴
void main()
{float a[N],x,v=0,d;int i;
for(i=0;i<n;i++)p=""}
v/=20;x=a[0];
d=⑵;
for(i=1;i<n;i++)<p="">
if(⑶){d=a<i>-v;⑷;}
printf("%f%fn",v,x);
}
3.【函数说明】链表的节点类型声明如下,下列函数create用于创建含n个stu类型节点的单向链表,函数返回值为链表的头指针。
struct stu{char name[9];int cj;stu*next;};
⑴create(int n)
{int i;stu*h,*p1,*p2;
p1=h=⑵;
scanf("%s%d",h->name,&h->cj);
for(i=2;i<=n;i++){
p2=(stu*)malloc(sizeof(stu));
scanf("%s%d",p2->name,&p2->cj);
p1->next=p2;⑶;
}
⑷;
return h;
}
四、程序设计题(1、2小题各10分,第3小题12分,共32分)
1.编程,输入x(x>1),正方形A1的边长为x,A2是A1的内接正方形,A3是A2的内接正方形,...,A10是A9的内接正方形。计算并显示A10的面积。
2.编写通用函数,计算下列表达式的值。
通用函数
3.文本文件e:aaa.txt中按统一格式已存储若干行学生信息:学号8位字符、空格、成绩3位整数)。编程,将所有需要补考的学生之学号、成绩写入到文本文件e:bbb.txt中。
C程序设计参考答案
一、填空题(每小题2分,共20分)
⑴(int)log10(m)+1⑵17⑶ctype.h⑷3,4⑸10
⑹float f(float*a,float x,int n)
⑺void f(float**a,int m,int n,int*i1,int*i2)⑻x、y为相同类型
⑼17⑽fopen("g:\aaa.txt","r")
二、程序阅读题(每小题8分,共24分)
1.1-1 2 7 2.a,b,c:
0 1 3 5 11
0-2 1 3 100
1 0 2 1 223
3.Windows_xp,Microsoft word_2003,Microsofr VC_6.0
三、程序填空题(每空2分,共24分)
1.⑴scanf("%d",&m)⑵i<=m⑶j<=m+1-i⑷j++,k++
2.⑴#define N 20⑵a[0]-v⑶fabs(a<i>-v)
3.⑴stu*⑵(stu*)malloc(n*sizeof(stu))⑶p1=p2⑷p2->next=NULL
四、程序设计题(1、2小题各10分,第3小题12分,共32分)
1.#include
#include
void main()
{int i;float x;
while(scanf("%f",&x),x<=1);
for(i=2;i<=10;i++)x=x/sqrt(2);
printf("%fn",x*x);
}
2.float f(float*a,int n)
{float y=1;int i;
for(i=n-1;i>=0;i--)y=1+a<i>/y;
return y;
}
3.重点:文件读写(注意格式)函数,文件结束标志,打开、关闭。
同学们学习湖北普通专升本c语言是循序渐进和积累的过程,千万不要着急,这些知识点都是为以后作铺垫的。
编辑推荐