二级C上机题集Word文档下载推荐.docx
- 文档编号:16727609
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:17
- 大小:21.82KB
二级C上机题集Word文档下载推荐.docx
《二级C上机题集Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二级C上机题集Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
例如:
w值为5923,则函数返回923;
w值为923,则函数返回23.
unsignedfun(unsignedw)
if(w>
=10000)returnw%10000;
=1000)returnw%1000;
=100)returnw%100;
returnw%10;
第八十四套
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
所有学生数据均以二进制方式输出到文件中。
函数fun的功能是重写形参filename所指的文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
第1处fp=fopen(filename,"
rb+"
)
第2处fseek(fp,-1L*sizeof(STU),SEEK_END);
第3处fwrite(&
n,sizeof(STU),1,fp);
给定程序MODI1.C中函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。
p=(NODE*)malloc(sizeof(NODE));
returnh;
请编写函数fun,函数的功能是,统计一行字符串中单词的个数,作为函数值返回。
一行字符串在主函数中输入,规定所有单词有小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。
intfun(char*s)
intk=1;
while(*s)
{if(*s=='
'
)k++;
s++;
returnk;
第八十五套
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
函数fun的功能是从形参filename所指的文件中读入学生书数据,并按照从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
rb"
);
第2处if(s[i].sno>
s[j].sno)
第3处fwrite(s,sizeof(STU),N,fp);
在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
注意:
字符串的长度最长允许为79.
p=s;
while(*p++)
3程序设计
请编写函数fun,函数的功能是:
统计各年龄段的人数,N个年龄能通过调用随机函数获得,并放在主函数的age数组中:
要求函数把0到9岁的年龄段的人数放在d[0]zhong把10—19岁的年龄段的人数放在d[1]中,其余依此类推,把100岁(含100岁)的年龄段的人数放在d[10]中。
结果在主函数中输出。
voidfun(int*a,int*b)
inti,j;
for(i=0;
M;
i++);
b[i]=0;
N;
{j=a[i]/10;
if(j>
10)b[M-1]++;
elseb[j]++;
第八十六套
给定程序中,函数fun的功能是将不代头结点的单向链表逆置。
即若原链表中从头至尾结点数据域依次为:
2、4、6、8、10,逆置后,从头至尾结点数据域依次为:
10、8、6、4、2.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第1处NODE*fun(NODE*h)
第2处r=q->
next;
第3处q=r;
将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)
if(i%2||s[i]%2==0)
t[j]='
\0'
;
将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。
函数fun中给出的语句仅供参考。
#include<
stdio.h>
voidfun(int(*s)[10],int*b,int*n,intmm,intnn)
inti,j,np=0;
nn;
for(j=0;
j<
mm;
j++)
b[np]=s[j][i];
np=i*mm+j+1;
*n=np;
第八十七套
1程序填空
所有学生数据均以二进制方式输出到student.dat文件中。
函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门的分数加3分,修改后重写文件中该学生的数据,即用该学生背后的数据覆盖原数据,其他学生数据不变;
若找不到,则什么都不做。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第1处while(!
feof(fp))
第2处if(n.sno==sno)break;
第3处fseek(fp,-1L*sizeof(STU),SEEKCUR);
利用插入排序法对字符串中的字符按从小到大的顺序进行排序,插入法的基本算法是:
先对字符串中的头两个元素进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;
再把第四个字符插入到前三个字符中,……。
待排序的字符串已在主函数中赋予。
请改正函数fun中指定部位的错误,使它能得出真确结果。
n=strlen(aa);
ch=aa[i];
N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。
请编写函数fun,它的功能是:
找出学生的最高分,由函数值返回。
doublefun(STREC*h)
{
doublemax=h->
s;
STREC*p;
p=h->
while(p)
{if(p-s>
max)
max=p->
p=p->
nest;
returnmax;
第八十八套
给定程序中,函数fun的功能是调用随机函数产生的20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。
第1处while(n<
N)
第2处if(x==a[i])break;
第3处if(i==n){a[n]=x;
n++;
}
先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
sum=0
scanf("
%d"
&
a[i][j]);
编写程序,实现矩阵(3行3列)的转置(即行列互换)
intfun(intarray[3][3])
inti,j,arr[3][3];
memcpy(arr,array,9*sizeof(int));
3;
i++)
array[i][j]=arr[j][i];
第八十九套
给定程序中,函数fun的功能是:
求ss所知字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。
Ss所指字符串数组中共m个字符串,且串长>
N。
第1处intfun(char(*ss)[N],int*n)
第2处if(i==0)*n=len;
第3处*n=len;
根据形参m计算如下公式的值。
例如,若输入5,则应输出2.283333
t+=1.0/i;
returnt;
编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
intfun(char*str,char*substr)
intcnt=0;
char*p=str,*q;
while(*p){
q=strstr(p,substr);
if(q==NULL)break;
p=q+strlen(substr);
cnt++;
第九十套
求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。
Ss所指字符串数组中有M个字符串,且串长<
第一处n=strlen(ss[i]);
第二处ss[i][n+j]=’*’;
第三处ss[i][n+j+1]=’\0’;
将p所指字符串中每个单词的最后一个字母改成大写。
(这里的“单词”是指由空格隔开的字符串)。
请改正程序中错误之处,使它能得出正确结果。
if(*p==’’)
*(p-1)=toupper(*(p-1));
3请编写函数fun对长度为7个字符的字符串,除首、尾字符外,将其余5个字符ASCII码降序排列。
intfun(char*s,intnum)
{
charch;
inti,j;
for(i=1;
i<
6;
i++)
for(j=i+1;
j<
j++)
if(*(s+i)<
(s+j))
ch=*(s+j);
*(s+j)=*(s+i);
*(s+i)=ch;
}}}
第九十一套
将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。
第一处max=*std;
第二处if(max.age<
std[i].age)
max=std[i];
第三处
printf(“\nName:
%s,Age:
%d\n”,max.name,max.age);
实现两个整数的交换。
例如给a和b分别输入:
60和65,输出为:
a=65b=60
voidfun(int*a,int*b)
t=*b;
*b=*a;
*a=t;
3程序编写
请编写一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指唯一数组中。
二维数组中的数已在主函数中赋予。
voidfun(inttt[M][N],intpp[N])
inti,j,min,k;
for(i=0;
min=tt[0][i];
k=0;
for(j=1;
M;
if(min>
tt[j][i])
{min=tt[j][i];
k=j;
pp[i]=tt[k][i];
第九十二套
将a和b所指的两字符串转达换成面值相同的整数,并进行相加作为函数值返回,规定字符串只含9个以下数字字符。
第一处d=d*10+*s-‘0’;
第二处s++;
第三处returnctod(a)+ctod(b);
分别统计字符串大写字母和小写字母的个数和。
*a=*a+1;
*b=*b+1;
使用实型整数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)
floatfun(floath)
longw;
w=h*100+1.5;
return(float)w/100;
第九十三套
找出100—x(x<
=999)之间各位上的数字之和为15的所有整数,然后输出,符合条件的整数个数作为函数值返回。
第一处n=0;
第二处while(t<
=x)
第三处t++;
先将s所指字符串中的字符按逆序放到t所指字符串中,然后把s所指的字符串中的字符按正序连接到t所指串的后面。
inti,s1;
t[i]=s[s1-i-1];
将a、b中的两个两位整数合并形成一个新的整数放在c中。
合并的方式是:
将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位依次放在变量c的千位和十位上。
voidfun(inta,intb,int*c)
*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);
第九十四套
从三个形参a、b、c中找出中间那个数,作为函数值返回。
第一处t=a>
b?
(b>
c?
b:
(a>
c:
a)):
((a<
c)?
a:
((b>
b));
首先将大写字母转换为对应的小写字母:
若小写字母为a—u,则将其转换为其后的第五个字母;
若小写字母为v—z,使其值减21。
转换后的小写字母作为函数值返回。
c=c+32;
c=c+5;
计算并输出……例如,在主函数中从键盘给n输入20后,输出为s=534.188884。
要求n的值大于1但不大于100.
doublefun(intn)
inti;
doublefac=1.0;
doublesum=1.0;
for(i=2;
=n;
{fac+=sqrt(i);
sum+=fac;
returnsum;
第九十五章
给定程序中函数fun的功能是:
调用fun函数建立班级通讯录。
通讯录中记录每位同学的编号、姓名和电话号码。
班级的人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为mylife5.dat的二进制文件中。
第一处intfun(STYPE*std)
第二处FILE*fp;
第三处fwrite(&
std{i},sizeof(STYPE),1,fp);
先将在字符串s中的字符按正顺序放到t串中,然后把s中的字符按逆顺序放到他串后面。
s1;
t[2*s1]=0;
将两个两位数的正整数a、b合并形成一个整数放在c中。
将a的十位和个位数依次放在c位的千位和十位上,b的十位和个位数依次放在c的百位和个位上。
voidfun(inta,intb,long*c)
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);
第九十六套
函数fun的功能是:
对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
第一处b->
sno=10004;
第二处strcpy(b->
name,”LiJie”);
第三处fun(&
t);
应用递归算法求形参a的平方根。
求平方根的迭代公式如下:
a为2时平方根值为1.414214
doublefun(doublea,doublex0)
if(fabs(x1-x0)>
0.00001)
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:
把高于等于平均分数的学生数据放在b所指的数组中,并把人数通过形参n传回。
doublefun(STREC*a,STREC*b,int*n)
doublet=0;
*n=0;
t=t+a[i].s;
t=t/N;
if(a[i].s>
t)b[(*n)++]=a[i];
returnt;
第九十七套
找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计其出现的次数。
第一处ch=tolower(*s);
第二处k[n]+=1;
第三处if(max<
k[n])max=k[n];
求s的值。
当K为10时,函数应为1.533852.
floatfun(intk)
returns;
请编写函数fun,函数fun的功能是:
计算并输出下列级数和:
例如,当n=10时,函数值为0.909091.
doubles=0.0;
s=s+1.0/(i*(i+1));
rerurns;
第九十八套
将形参n中个位上为偶数的取出,并按原来从高位到低位的顺序组成一个新的数。
并作为函数值返回。
第一处i=1;
第二处while(s)
第三处x=x+t*i;
i=i*10;
输出M行N列的整数方阵,然后求两条对角线上元素之和,返回此和数。
intfun(intn,intxx[][M])
printf(“%d”,xx[i][j]);
将a、b中的两位正整数合并形成一个新的整数放在c中。
合并的方式为:
将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的各位和百位上。
*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);
第九十九套
求出形参aa所指字符串数组中最长的字符串长度,其余字符串左边用字符*补齐,使其与最长字符串等长。
字符串数组中共有M个字符串,且串长<
第一处k=i;
第二处for(j=len;
j>
=0;
j--)
第三处ss[i][j]=’*’;
计算整数n的阶乘。
请改正程序中错误或在下划线处填上适当内容,删掉下划线,使它能计算出正确结果。
result*=n--;
returnresult;
从s所指的字符串删除给定的字符。
同一字母的大小写按不同字符处理。
intfun(chars[],charc)
char*p=s;
inti=0;
while(*p)
if(*p!
=c)s[i++]=*p;
p++;
s[i]=0;
第一百套
给定程序通过定义并赋值的方式,利用结构体变量存储了一名学生的学号姓名和3门课的成绩。
函数fun的功能是将该学生的各科成绩都乘以一个系统a。
第一处voidmodify(STU*ss,floata)
第二处ss->
score[i]*=a;
第三处modify(&
std,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 上机