C语言上机试题.docx

上传人:b****7 文档编号:10428620 上传时间:2023-02-11 格式:DOCX 页数:83 大小:46.23KB
下载 相关 举报
C语言上机试题.docx_第1页
第1页 / 共83页
C语言上机试题.docx_第2页
第2页 / 共83页
C语言上机试题.docx_第3页
第3页 / 共83页
C语言上机试题.docx_第4页
第4页 / 共83页
C语言上机试题.docx_第5页
第5页 / 共83页
点击查看更多>>
下载资源
资源描述

C语言上机试题.docx

《C语言上机试题.docx》由会员分享,可在线阅读,更多相关《C语言上机试题.docx(83页珍藏版)》请在冰豆网上搜索。

C语言上机试题.docx

C语言上机试题

第一套

填空:

程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。

函数fun的功能是输出这名学生的信息。

1、tt2、tt.score[i]3、std

改错:

给定程序MODI1.C中函数fun的功能是:

求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。

1、m=0;改为m=i;

2、if(a[k]>a[m])k=m;改为if(a[k]>a[m])m=k;

程序设计题:

请编写一个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的低n-1位的数作为函数值返回。

{

if(w>10000)w%=10000;

elseif(w>1000)w%=1000;

elseif(w>100)w%=100;

elseif(w>10)w%=10;

returnw;

}

第二套

填空:

给定程序中,函数fun的功能是:

对形参ss所指字符串中的M个字符串按长度由短到长进行排序。

ss所指字符串数组中共有M个字符串,且串长

1、i+12、k=j3、t

改错:

给定程序MODI1.C中函数fun的功能是:

判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

1、voidfun(charstr,charch)改为

voidfun(char*str,charch)

2、if(*str==ch)改为if(*str!

=ch)

3、str[1]='0';改为str[1]=0;

程序设计题:

请编一个函数fun(char*s),函数的功能是把s所指字符串中的内容逆置。

{

charb[N]={0};

inti=0,j;

for(j=strlen(s)-1;j>=0;j--)

b[i++]=s[j];

strcpy(s,b);

}

第三套

填空:

给定程序中,函数fun的功能是:

求出形参ss中最长字符串的长度,其余字符串用字符*补齐,使其与最长的字符串等长。

字符串数组中共有M个字符串,且串长

1、k2、len3、ss[i][j]

改错:

给定程序MODI1.C中函数fun的功能是:

计算整数n的阶乘。

1、result*=--n;改为result*=n--;

2、return_____;改为returnresult;

程序设计题:

编写函数fun,函数的功能是:

从s所指的字符串中删除给定的字符。

同一字母的大、小写按不同字符处理。

如果输入的字符在字符串中不存在,则字符串照原样输出。

{

char*p=s;

inti=0;

while(*p){

if(*p!

=c)s[i++]=*p;

p++;

}

s[i]=0;

}

第四套

填空:

给定程序中,函数fun的功能是:

求出形参ss中最长字符串的长度,将其余字符串用字符*补齐,使其与最长的字符串等长。

ss所指字符串数组中共有M个字符串,且串长

1、ss[i]2、n+j3、1

改错:

给定程序MODI1.C中fun函数的功能是:

将p所指字符串中的每个单词的最后一个字母改成大写。

(这里的“单词”是指由空格隔开的字符串)。

1、if(p=='')改为if(*p=='')

2、*(p-1)=toupper(*(p-1))改为

*(p-1)=toupper(*(p-1));

程序设计题:

请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。

{

charch;

inti,j;

for(i=1;i<6;i++)

for(j=i+1;j<6;j++){

if(*(s+i)<*(s+j)){

ch=*(s+j);

*(s+j)=*(s+i);

*(s+i)=ch;

}

}

}

第五套

填空:

给定程序中,函数fun的功能是:

求ss所指字符串数组中长度最长的字符串所在的行下标,作为返回值返回,并把其串长放在形参n所指变量中。

Ss所指字符串数组中共有M个字符串,且串长

1、[N]2、len3、*n=len

改错:

给定程序MODI1.C中fun函数的功能是:

根据形参m,计算如下公式的值。

t=1+1/2+1/3+1/4+……+1/m

1、t+=1.0/k;改为t+=1.0/i;

2、________改为returnt;

程序设计题:

编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

{

intcnt=0;

char*p=str,*q;

while(*p){

q=strstr(p,substr);

if(q==NULL)break;

p=q+strlen(substr);

cnt++;

}

returncnt;

}

第六套

填空:

给定程序中,函数fun的功能是:

求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。

Ss所指字符串数组中共有M个字符串,且串长

1、M2、<3、k

改错:

给定程序MODI1.C中fun函数的功能是:

tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变。

1、if((‘a’<=tt[i])||(tt[i]<=‘z’))改为if((‘a’<=tt[i])&&(tt[i]<=‘z’))

2、tt[i]+=32;改为tt[i]-=32;

程序设计题:

请编写函数fun,其功能是:

将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

intisP(intm)

{

intj,tag=0;

for(j=2;j

tag;j++)

if(m%j==0)tag=1;

returntag;

}

voidfun(intm,int*k,intxx[])

{

inti,cnt=0;

for(i=2;i

if(isP(i))xx[cnt++]=i;

*k=cnt;

}

或者:

voidfun(intm,int*k,intxx[])

{

inti,j,n=0;

for(i=1;i

for(j=2;j

if(i%j==0)

{

xx[n++]=i;

break;

}

*k=n;

}

第七套

填空:

给定程序中,函数fun的功能是:

将s所指字符串中的所有数字字符移动到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。

1、j++2、s[i]=t1[i]3、j

改错:

给定程序MODI1.C中fun函数的功能是:

用冒泡法对6个字符串按由小到大的顺序进行排序。

1、for(j=i+1,j<6,j++)改为

for(j=i+1;j<6;j++)

2、*(pstr+i)=pstr+j;改为

*(pstr+i)=*(pstr+j);

程序设计题:

请编写函数fun,它的功能是:

求出ss所指字符串中指定字符的个数,并返回此值。

{

intcnt=0;

char*p=ss;

while(*p){

if(*p==c)cnt++;

p++;

}

returncnt;

}

第八套

填空:

给定程序中,函数fun的功能是:

在形参s所指字符串中的每个数字字符之后插入一个*号。

1、&&2、03、s[j]

改错:

给定程序MODI1.C中函数fun的功能是:

根据整型形参m,计算如下公式的值。

y=1+1/(2*2)+1/(3*3)+1/(4*4)+……+1/(m*m)

1、for(i=2;i

for(i=2;i<=m;i++)

2y+=1/(i*i);改为y+=1.0/(i*i);

程序设计题:

请编写函数fun,函数的功能是:

实现B=A+A’,即把矩阵A加上A的转置,存放在矩阵B中。

计算结果在main函数中输出。

{

intc[3][3];

inti,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++){

c[i][j]=a[j][i];

b[i][j]=a[i][j]+c[i][j];

}

}

第九套

填空:

给定程序中,函数fun的功能是:

统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。

1、s[i]2、'9'3、*t=n

改错:

给定程序MODI1.C中函数fun的功能是:

通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。

1、t=x;x=y;改为t=*x;*x=y;

2、return(y);改为return(t);

程序设计题:

请编写函数fun,它的功能是:

求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。

{

inti;

*n=0;

for(i=7;i<1000;i++)

if(((i%7)==0||(i%11)==0)&&(i%77)!

=0)a[(*n)++]=i;

}

第十套

填空:

给定程序中,函数fun的功能是:

把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出的字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:

字符串的长度大于等于2)。

1、1;2、s[k]3、c

改错:

给定程序MODI1.C中函数fun的功能是:

求s=aa…aa-…-aaa–aa–a(此处aa…aa表示n个a,a和n的值在1至9之间)a和n是fun函数的形参,表达式的值作为函数值传回main函数。

1、t=1;改为t=0;

2、t=t%10;改为t=t/10;

程序设计题:

请编写一个函数voidfun(char*tt,intpp[]),统计错在tt所指字符串中‘a’到‘z’26个小写字母个字出现的次数,并依次放在pp所指数组中。

{

char*p=tt;

inti;

for(i=0;i<26;i++)pp[i]=0;

while(*p){

if(*p>='a'&&*p<='z')

pp[*p-'a']+=1;

p++;

}

}

第十一套

填空:

给定程序中,函数fun的功能是:

对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下表为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。

1、t=i2、i3、0;

改错:

给定程序MODI1.C中函数fun的功能是用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:

π/4≈1-1/3/+1/5-1/7+…

1、while(t>=num)改为while((fabs(t))>=num)

2、t=s%n;改为t=s/n;

程序设计题:

请编写一个函数voidfun(chara[],charb[],intn),其功能是:

删除一个字符串中指定下标的字符。

其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。

{

strncpy(b,a,n);

b[n]=0;

strcat(b,a+n+1);

}

第十二套

填空:

给定程序中,函数fun的功能是:

在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。

1、02、03、c

改错:

在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。

给定程序MODI1.C中函数fun的功能是:

计算数组元素中值为正数的平均值(不包括0)。

1、intsum=0.0;改为doublesum=0.0;

2、sum\=c;改为sum/=c;

程序设计题:

编写函数fun,函数的功能是:

根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

S=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+…+n)。

{

return2.0*n/(n+1);

}

第十三套

填空:

给定程序中,函数fun的功能是:

有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。

1、i++2、m3、m

改错:

给定程序MODI1.C中函数fun的功能是:

计算并输出high以内最大的10个素数之和。

high的值由主函数传给fun函数。

1、while((high>=2)&&(n<10)改为while((high>=2)&&(n<10))

2、yes=0;break改为yes=0;break;

程序设计题:

编写函数fun,它的功能是:

利用以下所示的简单迭代方法求方程:

cos(x)-x=0的一个实根。

Xn+1=cos(Xn)。

{

floatx0,x1=0.0;

do{

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>0.000001);

returnx1;

}

第十四套

填空:

给定程序中,函数fun的功能是:

将N×N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。

1、N2、N-13、0

改错:

给定程序MODI1.C中函数fun的功能是:

计算并输出下列级数的前N项之和Sn,直到Sn+1大于q为止,q的值通过形参传入。

Sn=2/1+3/2+4/3+…+(n+1)/n

1、s=s+(n+1)/n;改为s=s+(n+1.0)/n;

2、returns;改为returnt;

程序设计题:

编写函数fun,它的功能是:

求Fibonacci数列中大于t的最小的一个数,结果由函数返回。

其中Fibonacci数列F(n)的定义为:

F(0)=0,F

(1)=1,F(n)=F(n-1)+F(n-2)。

{

intf0=0,f1=1,f;

do{

f=f0+f1;

f0=f1;

f1=f;

}while(f

returnf;

}

第十五套

填空:

给定程序中,函数fun的功能是:

有N×N矩阵,将矩阵的外围元素顺时针旋转。

操作顺序是:

首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。

1、02、j--3、j

改错:

给定程序MODI1.C中函数fun的功能是:

计算S=f(-n)+f(-n+1)+…+f(0)+f

(1)+f

(2)+…+f(n)的值。

f(x)函数定义略。

1、f(doublex)改为doublef(doublex)

2、returns改为returns;

程序设计题:

编写函数fun,它的功能是计算:

s=根号ln

(1)+ln

(2)+ln(3)+…+ln(m),s作为函数值返回。

在C语言中可调用log(n)函数求ln(n)。

log函数的引用说明是:

doublelog(doublex)。

{

doubles=0.0;

inti;

for(i=1;i<=m;i++)s+=log(1.0*i);

s=sqrt(s);

returns;

}

第十六套

填空:

给定程序中,函数fun的功能是:

有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右下三角元素置为0。

1、[N]2、t[i][j]3、t[j][i]

改错:

给定程序MODI1.C中函数fun的功能是:

计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。

其中x和y的值不等,z和y的值不等。

1、#defineFU(m,n)(m/n)改为

#defineFU(m,n)((m)/(n))

2、Return(Value);改为return(value);

程序设计题:

规定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

将字符串中的前导*号全部删除,中间和尾部的*号不删除。

{

intj=0;

char*p=a;

while(*p=='*')p++;

while(*p){

a[j++]=*p;

p++;

}

a[j]=0;

}

第十七套

填空:

给定程序中,函数fun的功能是:

将N×N矩阵中主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。

1、t[][N]2、i=0;i

改错:

由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:

利用折半查找算法查找整数m在数组中的位置。

若若找到,返回其下标值;反之,返回-1。

折半查找的基本算法略。

1、voidfun(inta[],intm)改为

fun(inta[],intm)

2、elseIf(m>a[mid])改为elseif(m>a[mid])

程序设计题:

假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

除了尾部的*号之外,将字符串中其他*号全部删除。

形参p已指向字符串中最后的一个字母。

在编写函数时,不得使用C语言提供的字符串函数。

{

char*q=a;

intj=0;

while(*q&&q

if(*q!

='*')a[j++]=*q;

q++;

}

while(*p)a[j++]=*p++;

a[j]=0;

}

第十八套

填空:

给定程序中,函数fun的功能是:

计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。

注意,要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。

1、sum=02、t[i][i]3、1

改错:

给定程序MODI1.C中函数fun和funx的功能是:

用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。

1、intr;改为doubler;

2、while(fabs(n-m)<0.001)改为

while(fabs(n-m)>0.001)

程序设计题:

假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

除了字符串前导和尾部的*号之外,将串中其他*号全部删除。

形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。

在编写函数时,不得使用C语言提供的字符串函数。

{

intj=0;

char*q=a;

while(*q&&q

while(*h&&*p&&h

if(*h!

='*')a[j++]=*h;

h++;

}

while(*p)a[j++]=*p++;

a[j]=0;

}

第十九套

填空:

函数fun的功能是:

把形参a所指数组中的奇数按原顺序依次存放在a[0]、a[1]、a[2]、……中,把偶数从数组中删除,奇数个数通过函数值返回。

1、12、j++3、j

改错:

给定程序MODI1.C中函数fun的功能是:

求出两个非零正整数的最大公约数,并作为函数值返回。

1、t=a;b=a;a=t;改为t=b;b=a;a=t;

2、return(a);改为return(b);

程序设计题:

假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

删除字符串中所有的*号。

在编写函数时,不得使用C语言提供的字符串函数。

{

intj=0;

char*p=a;

while(*p){

if(*p!

='*')a[j++]=*p;

p++;

}

a[j]=0;

}

第二十套

填空:

函数fun的功能是:

把形参a所指数组中的偶数按原顺序依次存放在a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数值返回。

1、a[i]%22、a[j]3、j

改错:

给定程序MODI1.C中函数fun的功能是:

按以下递归公式求函数值。

fun(n)=10(n=1),fun(n)=fun(n-1)+2(n>1)。

1、fun(n)改为fun(intn)

2、if(n=1)改为if(n==1)

程序设计题:

假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:

使字符串中尾部的*号不得多于n个;若多余n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

n的值在主函数中输入。

在编写函数时,不得使用C语言提供的字符串函数。

{

char*p=a;

intj=0;

while(*p)p++;p--;

while(*p=='*')p--;

p++;

while(j

p++;

j++;

}

*p=0;

}

第二十一套

填空:

函数fun的功能是:

把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次最小值放在a[2]中,把a所指数组元素中的次最大值放在a[3]中;其余以此类推。

形参n中存放a所指数组中数据的个数。

1、a[i]2、a[j]3、a[j]

改错:

用递归算法计算斐波拉数列中第n项的值。

从第1项起,斐波拉契数列为:

1、1、2、3、5、8、13、21、……

1、switch(g);改为switch(g)

2、case1;case2:

return1;改为

case1:

return1;case2:

return1;

程序设计题:

某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。

请编

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1