复 计算机二级C语言上机试题汇编100套Word格式.docx
- 文档编号:4778178
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:32
- 大小:47.53KB
复 计算机二级C语言上机试题汇编100套Word格式.docx
《复 计算机二级C语言上机试题汇编100套Word格式.docx》由会员分享,可在线阅读,更多相关《复 计算机二级C语言上机试题汇编100套Word格式.docx(32页珍藏版)》请在冰点文库上搜索。
for(i=0;
i++)b[i]=0;
N;
i++){j=a[i]/10;
if(j>
10)b[M-1]++;
elseb[j]++;
}}doublernd()
五1字符串、整数、浮点数写到文本文件中,用字符串方式逐个读入,调用库函数atoi和atof将字符串转换成相应的整数、浮点数。
fclose(fp)。
2对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名。
缺少分号。
应用方括号不是圆括号。
3删去一维数组所有相同的数,只剩一个。
一维数组:
2223445666677899101010。
删除后:
2345678910。
inti,j=1,k=a[0];
for(i=1;
n;
i++)if(k!
=a[i]){a[j++]=a[i];
k=a[i];
}a[j]=0;
returnj;
六1根据形参i的值返回某函数的值。
输x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。
double。
f1。
f2。
2比较两个字符串,将长的字符串的首地址作为函数值返回。
char*fun(char*s,char*t)ss++;
tt++;
3移动字符串中的内容,把第1到第m个平移到串的最后,把第m+1到最后的字符移到字符串的前部。
原有:
ABCDEFGHIJK,m的值为3,移动后是:
DEFGHIJKABC。
{inti;
m;
i++)fun1(w);
七1利用结构体变量存储一名学生的信息。
输出这位学生的信息。
tt。
tt.score[i]。
std。
2求数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]对调。
m=i;
if(a[k]>
a[m])m=k;
3w是n(n≥2)位的整数,函数求出w的低n-1位的数w值为5923返回923w为923返回23。
{if(w>
10000)w%=10000;
elseif(w>
1000)w%=1000;
100)w%=100;
10)w%=10;
returnw;
八1将该生的各科成绩都乘以一个系数a。
STU。
score[i]。
&
std。
2求k!
(k<
13)k=10输出:
3628800。
少圆括号。
相等==。
3使数组左下三角元素中的值乘以n。
若n值3a数组值|197||397||238|返回后a数组值为|698||456||121518|{inti,j;
i++)for(j=0;
=i;
j++)a[i][j]*=n;
九1不带头节点单链表从小到大排序。
原:
10、4、2、8、6,排序后:
2、4、6、8、10。
p.next。
q。
2将s所指字符串中的字母转换为后续字母(但Z转换为A,z转换为a),其它字符不变while(*s)。
s++;
3移动一维数组中的内容;
数组有n个整数,把下标从0到p(含p,p小于等于n-1)的数组平移到数组的最后。
原始:
1,2,3,4,5,6,7,8,9,10;
p的值为3。
移动后:
5,6,7,8,9,10,1,2,3,4。
{inti,j=0,b[N];
for(i=p+1;
i++)b[j++]=w[i];
=p;
i++)w[i]=b[i];
十1形参a所指的N×
N(规定N为奇数)矩阵是否是"
幻方"
变量row和colum的值初始化为0。
||。
返回1。
2根据整型形参m,计算如下公式的值。
输入5,输出-0.283333。
t-=1.0/i。
returnt;
3删除字符串中的所有空格。
输入"
asdafaaz67"
输出"
asdafaaz67"
{char*p=str;
inti=0;
while(*p){if(*p!
='
)str[i++]=*p;
p++;
}str[i]=0;
十一1将带头结点的单向链表逆置。
原链表:
2、4、6、8、10,逆置后:
10、8、6、4、2。
h->
next。
r。
2计算s所指字符串中含有t所指字符串的数目。
r=t;
if(*r==0)。
3计算s所指字符串中含有t所指字符串的数目inti;
*b=0;
i++)strcat(b,a[i]);
十二1将不带头结点的单链表逆置。
2、4、6、8、10,逆置后,:
10、8、6、4、2NODE*。
next。
2将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。
字符串AABBCCDDEEFF,输出:
ABBCDDEFF。
if(i%2||s[i]%2==0)。
t[j]=0;
3将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。
二维数组:
333333334444444455555555一维:
334455334455334455334455。
{inti,j,np=0;
nn;
mm;
j++){b[np]=s[j][i];
np=i*mm+j+1;
}*n=np;
十三1带头节点的单链表结点数据域中的数据从小到大排序。
原104286排后246810。
h->
p->
2建带头结点的单链表,随机函数赋值。
求单向链表结点数据域中的最大值。
p=h->
next;
p=p->
next;
3将M行N列的二维数组,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
二维:
333333334444444455555555。
{inti,j,k;
j++){k=i*nn+j;
b[k]=s[i][j];
}*n=mm*nn;
十四1用函数指针指向要调用的函数,并进行调用。
规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。
输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000double。
2建立带头结点的单链表。
将单向链表结点数据域为偶数的值累加起来。
p=h->
3判断字符串是否为回文?
是,函数返回1,输出:
YES,否返回0,输出NO。
字符串LEVEL是回文,而字符串123312就不是回文。
{inti,j=strlen(str);
j/2;
i++)if(str[i]!
=str[j-i-1])return0;
return1;
十五1student.dat文件从指定文件中找出指定学号的学生数据,使每门课的分数加3分。
fp。
==。
2插入排序法对字符串中的字符从小到大排序。
n=strlen(aa);
ch=aa[i];
3N名学生的成绩、带头节点的链表结构中,h指向链表的头节点。
找出学生的最高分。
{doublemax=h->
s;
STREC*p;
while(p){if(p->
s>
max)max=p->
}returnmax;
十六1求形参ss字符串中最长字符串的长度,其余字符串右边用字符*补齐。
ss[i]。
n+j。
1。
2将p所指字符串中每个单词的最后一个字母改成大写。
(空格隔开)。
输入"
Iamastudenttotaketheexamination."
,输出"
IaMAstudenTtOtakEthEexamination."
int。
加右括号。
3对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。
原CEAedca,排后CedcEAa。
{charch;
inti,j;
6;
i++)for(j=i+1;
j++){if(*(s+i)<
*(s+j)){
ch=*(s+j);
*(s+j)=*(s+i);
*(s+i)=ch;
}}}
十七1将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。
structstudent。
n-1。
a[i].name,a[j].name。
2在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置;
将该字符前的原字符向后顺序移动。
输入:
ABCDeFGH,输出:
eABCDFGH。
q=p+i;
while(q>
p)。
3结构体数组s,把指定分数范围内的学生数据放在b所指的数组中。
输入分数6069,把分数在60到69的学生数据输出,含60和69。
{inti,j=0;
i++)if(a[i].s>
=l&
&
a[i].s<
=h)b[j++]=a[i];
十八1将s所有字母字符顺序前移,其他字符顺序后移。
s:
asd123fgh543df,处理后:
asdfghdf123543。
s[i]。
k。
2将s所指字符串中最后一次出现与t1相同的子串替换成t2所指字符串,形成的新串放在w中。
s:
"
abcdabfabc"
,t1:
"
ab"
,t2:
99"
,w:
abcdabf99c"
while(*w)。
if错写成If。
3将s字符串中ASCII值为奇数的字符删除,串中剩余字符形成新串放在t中。
ABCDEFG12345"
,输出:
BDF24"
voidfun(char*s,chart[]){inti,j=0;
strlen(s);
i++)if(s[i]%2==0)t[j++]=s[i];
t[j]=0;
十九1将形参a所指结构体变量s中的数据修改,把a中地址作为函数值返回。
a:
10001、"
ZhangSan"
、95、80、88,修改后:
10002、"
LiSi"
、96、81、89。
structstudent*。
a->
score[i]。
a。
2从N个字符串中找出最长的串,将其地址作为函数值返回。
char*fun(char(*sq)[M])。
returnsp;
3将a、b中的两个两位正整数合并形成一个新的整数放在c中。
方式:
a的十位和个位数依次放在c的百位和个位,b的十位和个位依次放在c的十位和千位。
a=45,b=12。
后,c=2415。
voidfun(inta,intb,long*c){*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;
二十1计算x所指数组中N个数的平均值,小于平均值的数据移至数组前部,大于等于平均值移至x的后部。
10个正数4630324061745154826平均值:
30.500000移动后:
3061715264632404548N。
j++。
i=i+1。
2统计字符串中各元音字母的个数。
输入:
THIsisaboot输出:
1、0、2、2、0。
num[k]=0;
switch(*s)。
3求二维数组周边元素之和。
二维数组13579299946999813570值61。
intfun(inta[M][N]){inttot=0,i,j;
i++){tot+=a[0][i];
tot+=a[M-1][i];
}for(i=1;
M-1;
i++){tot+=a[i][0];
tot+=a[i][N-1];
}returntot;
二十一1计算形参x所指数组中N个数的平均值,大于平均值的数据移至数组的前部,小于等于平均值的数据移至x的后部。
10个正数:
4630324061745154826,平均值为:
30.500000移动后的输出为:
4632404548306171526s/N。
-1。
2读入一个英文文本行,每个单词的第一个字母改成大写,然后输出此文本行。
Iamastudenttotaketheexamination.,输出:
IAmAStudentToTakeTheExamination.。
include前漏写了#。
upfst(char*p)。
3求数组周边元素的平均值并作为函数值返给主函数中的s。
a数组中的值为|01279|a=|19745||23831||45682||59141|返回值:
3.375。
doublefun(intw[][N]){inti,j,n=0;
doublesum=0;
for(i=0;
i<
N;
i++){sum+=w[0][i]+w[N-1][i];
n+=2;
}for(i=1;
N-1;
i++){sum+=w[i][0]+w[i][N-1];
}returnsum/n;
二十二1将自然数1~10以及平方根写到名为myfile3.txt的文本文件中fp。
fname
2将n个无序整数从小到大排序。
<
n或<
=n-1。
p=i;
3将两个两位数的正整数a、b合并形成一个整数放在c中。
a的十位和个位依次放在c的个位和百位上,b的十位和个位放在c数的十位和千位。
a=45,b=12,后,c=2514。
voidfun(inta,intb,long*c){*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);
二十三1找出N×
N矩阵中每列元素中的最大值,按顺序依次存放于形参b所指的一维数组中。
a[0][i]。
x,y。
2交换主函数中两个变量的值。
a值原为8,b值为3。
运行后a3,b8。
int*x,int*y。
t=*x;
*x=*y;
*y=t;
3求小于或等于lim的所有素数并放在aa数组中,返回素数个数。
intfun(intlim,intaa[MAX]){inti,j,k=0;
for(i=2;
i<
=lim;
i++){for(j=2;
=(i/2);
j++)if(i%j==0)break;
(i/2))aa[k++]=i;
}returnk;
二十四1将a中的数据进行修改,把修改后的数据作为函数值返回主函数输出。
形参a:
10001、"
ZhangSan"
LiSi"
a.name。
a.score[i]。
2删除数列中值为x的元素。
小写p。
a[i]=a[i+1];
3把分数最低的学生数据放在b数组中,返回分数最低的学生人数。
intfun(STREC*a,STREC*b){inti,j=0,min=a[0].s;
i++){if(min>
a[i].s){j=0;
b[j++]=a[i];
min=a[i].s;
}elseif(min==a[i].s)b[j++]=a[i];
}returnj;
二十五1人员的记录由编号和出生年、月、日组成,找出指定编号人员的数据。
stu[i].num。
std[i]。
2从s所指字符串中,找出与t字符串相同的子串个数返回。
abcdabfab"
,t:
,返回3。
缺少分号。
if(*r==0)。
3将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t数组中。
,t:
ACEG135"
i++)if(s[i]%2)t[j++]=s[i];
二十六1带头结点的单链表,链表中的各结点按数据域递增有序链接。
删除链表中数据域值相同的结点,使之只保留一个。
next。
2用选择法对数组中的n个元素按从小到大的顺序进行排序。
p=i;
3求出1到m之间(含m)能被7或11整除的所有整数放在数组a中m值50,输出:
711142122283335424449#include<
stdio.h>
#defineM100voidfun(intm,int*a,int*n){inti;
*n=0;
for(i=7;
=m;
i++)if((i%7==0)||(i%11==0))a[(*n)++]=i;
二十七1计算下式前n项的和作为函数值返回。
n值为10返回:
9.612558。
变量s置0。
n。
t*t。
2统计substr所指子字符串在str所指字符串中出现的次数。
字符串aaaslkaaas,子字符串为as,输出2。
循环for语句中应有分号。
if
3求π的值(满足精度0.0005,小于0.0005时停止迭代):
输入精度0.0005,输出为3.14…。
doublefun(doubleeps){doubles=1,t=1./3;
intn=1;
while(t>
=eps){s+=t;
n++;
t=t*n/(2.0*n+1);
}return(s*2.0);
}main()
二十八1统计s所指字符串中数字字符出现次数,存放在t中。
s:
abcdef35adgh3kjsdf7。
输出4。
'
9'
*t=n。
2实现两个变量值的交换。
a8,b3,运行后a3,b8。
*x=y;
return(t);
3求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数voidfun(int*a,int*n){inti;
*n=0;
for(i=7;
1000;
i++)if(((i%7)==0||(i%11)==0)&
(i%77)!
=0)a[(*n)++]=i;
二十九1对形参b所指结构体变量中的数据进行修改输出修改后的数据。
B:
10002、"
ZhangQi"
、93、85、87,修改后输出t:
10004、"
LiJie"
、93、85、87。
->
no。
->
name。
t。
2应用递归算法求形参a的平方根。
a为2,平方根值:
1.414214。
double错。
变量x0错写成xo。
3把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
doublefun(STREC*a,STREC*b,int*n){doublet=0;
inti;
i++)t=t+a[i].s;
t=t/N;
t)b[(*n)++]=a[i];
returnt;
三十1将形参a结构体变量中的数据赋给b,修改b中学号和姓名,输出修改后数据。
、95、80、88,改后:
、95、80、88。
b.name。
2从s所指字符串中删除所有小写字母c。
s[j]=0;
3假定输入的字符串中只包含字母和*号。
将字符串中的前导*号全部移到字符串的尾部。
字符串:
*******A*BC*DEF*G****,移动后:
A*BC*DEF*G***********。
voidfun(char*a){char*p,*q;
int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机二级C语言上机试题汇编100套 计算机 二级 语言 上机 试题 汇编 100