全国计算机二级C语言上机考试100题
1.编写函数fun,如,a=45,b=12时,调用该函数后,c=415
c编程必背100题2.
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10)
填空:1.STYPE 2.FILE 3.fp 改错:1.for(i=0;i<=s1;i++) 2.t[s1]=’\0’改为t[2*s1]=’\0’
.编写函数fun,如,a=45,b=12,调用后,c=1524.
*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);
填空:1,*fw 2.str 3.str 改错1.void fun (long s, long *t
3>合并整a,b;a的十位和个位放在c的个位和百位上,
b的十位和各位在c的十位和千位
*c=(b%10)*1000+(a%10)*100+(b%10)*10+a/10;
填空 1>ft 2>fclose 3>fname
改错 1>for(i=j+i;ip=i
4>合并整a,b;a的十位和位个放在c的十位和千位上,
b的十位和个位在c的十位百和个位
*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);
填空1>"r" 2>fs 3>ft
改错1>if(d%2==0) 2>s/=10;
5>计算n门课程的均分,返回结果
int i;
float ave=0.0;
for(i=0;i
return ave;
填空1>x 2>p 3>s 改错1>long k=1; 2>num/=10;
6>比较两个字符串,返回长的,相等返回前者
int i; char *p=s,*q=t; int n=0,m=0;
while(*p) {n++; p++;} while(*q)
{m++; q++;} if(n>=m) p=s; else p=t;
return p;
7>求到能被7或11整除的整数,通过n返回个数
int i,j=0;*n=0; for(i=1;i<=m;i++)
if(i%7==0||i%11==0) {a[j]=i; j++;}
*n=j; 填空1>q 2>nex 3>next改错1>p=j; 2>p=i;
8>将ss所指字符串中下标为奇数的字母换为大写
int i; for(i=1;i< bdsfid="97" p=""><>
{if(ss[i]>='a'&&ss[i]<='z')ss[i]-=32];}
填空1>0或NULL 2>n 3>head,ch
改错1>for(i=0,t=0;p[i];i++) 2>c[t]='\0';
9>保留下标和ASCII值为偶数的字符,其余删除
int i,j=0; for(i=0;i< bdsfid="103" p=""><>
if(s[i]%2==0) t[j++]=s[i]; t[j]='\0';
填1>*n2>next3>head 改1>a=NULL;2>if(*r==*p)
10>删除s中下标为偶数的字符,剩余放在t中
int i,j=0; for(i=1;i< bdsfid="108" p=""><>
t[j++]=s[i]; t[j]='\0'
11>删除s所指字符串中ASCII值为偶数的字符,其
余放在t所指数组中 int i,j=0;
for(i=0;i<="" p="">
t[j++]=s[i]; t[j]=0;
填空1>STU 2>std[i].num 3>std[i]
改错1>r++; p++ 2>if(*r=='\0')
12>在结构体a中,最高分用形参指针返回
int i,max=a[0].s,j=0; for(i=1;i<n;i++)< bdsfid="119" p=""></n;i++)<>
if(maxstd[i].year 2>std[i] 3>n
改错1>IsPrime(int n)2>if(!(n%i))
13>给数组左下角元素乘n int i,j;
for(i=0;i
a[i][j]*=n;填空1>STU 2>score[i] 3>&std
改错1>if(k>0) 2>else if(k==0)
14>使数组坐下三角元素为零 int i,j;
for(i=0;i
a[i][j]=0; 填空1>*std 2>PERSON 3>std
改错1>int i,k,q; 2>pt[i]=str[k][i];
15>求出二维数组每列最小元素并依次放入pp数组中
int i,j,min,k; for(i=0;i<n;i++)< bdsfid="135" p=""></n;i++)<>
{min=tt[0][i];k=0; for(j=1;j<m;j++)< bdsfid="137" p=""></m;j++)<>
if(min>tt[j][i]){min=tt[j][i]; k=j; }
pp[i]=tt[k][i];}填1>*std2>std[i].age3>www./doc/4dc8440af12d2af90242e63e.html 改1>void fun(int *a,int *b) 2>t=*b;*b=*a;*a=t;
16>函数求出w的低n-1位的数作为函数返回值unsigned t,s=0,s1=1,p=0; t=w; while(t>10) {if(t/10) p=t%10; s=s+p*s1; s1=s1*10
t=t/10;} return s;填空1>tt2>tt.score[i]3>std 改错1>m=i; 2>if(a[k]>a[m])m=k;
17>把s所指字符串逆置 char b[N]; int i=0,j; memset(b,0,N); for(j=strlen(s)-1;j>=0;j--)
b[i++]=s[j]; strcpy(s,b);
填1>i+12>k=j3>t 错1>void fun(char *str,char ch) 2>if(*str!=ch) 3>str[1]='\0';
18>从s所指的字符串中删除给定字符
char *p=s; int i=0; while(*p)
{if(*p !=c)s[i++]=*p; p++;} s[i]='\0';
填空1>k 2>len 3>ss[i][j]
改错1>result*=n--; 2>return result;
19>对7个字符的串除首尾字符外按ASCII码降序排列
char t; int i,j; for(i=1;i<num-2;i++)< bdsfid="152" p=""></num-2;i++)<>
for(j=i+1;j<s[j])<="" p="">
{t=s[i]; s[i]=s[j]; s[j]=t; }
填空1>ss[i] 2>n+j 3>1
改错1>if(*p=='') 2>*(p-1)=toupper(*(p-1));
20>统计长为2的字符串再另一串中出现的次数
int cnt=0; char *p=str, *q; while(*p){
q=strstr(p,substr); if(q==NULL) break;
p=q+strlen(substr); cnt++} return cnt;
填1>[N] 2>len 3>*n=len 改1>t+=1.0/i; 2>return t;
21>将1到m的非素数存入xx数组中,用k传回其个数
int i,j; int t=0; for(i=2;i<="">
j=2; while(j
t++; break; } j++; } *k=t; }
填空1>M 2>< 3>k
改错1>if(('a'<=tt[i])&&(tt[i]<='z')) 2>tt[i]-=32;
22>指出ss字符串中指定字符的个数并返回此值
int cnt=0; char *p=ss; while(*p) {
if(*p==c)cnt++; p++; } return cnt;
填空1>j++ 2>s[i]=t1[i] 3>j
改错1>for(j=i+1;j<6;j++) 2>*(pstr+i)=*(pstr+j);
23>计算矩阵A加上A的转置,存放在矩阵B中
int c[3][3]; int i,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]; }
填空1>&& 2>0 3>s[j]
改错1>for(i=2;i<=m;i++) 2>y+=1.0/(i*i);
24>秋1到1000能被7或11整除但不能同时整除的数
int i; *n=0; for(i=7;i<1000;i++)
if(((i%7)==0||(i%11)==0)&&(i%77)!=0) a[(*n)++]=i;
填1>s[i] 2>'9' 3>*t=n 改1>t=*x; *x=y; 2>return(t); 25>统计tt中26个字母出现的次数,并依次放在pp中
char *p=tt; int i; for(i=0;i<26;i++)pp[i]=0;
while(*p){ if(*p>='a'&&*p<='z')pp[*p-'a']+=1;p++;}
填空1>1 2>s[k] 3>c 改错1>long s=0,t=0; 2>t=t/10;
26.输入字符串:world,然后输入3,则输出结果为:
Int p,m=0; for(p=0;p
填空: 1.t=i 2. i 3.0
改错:1.while(fabs(t)>=num) 2.t=s/n;
27根据公式计算s计算结果返回.如, n的值为11时,函数值为1.833333 int k; float str=1.0,su
m=1.0;
for(k=2;k<=n;k++) {sum=sum+k; str=str+1/sum;} return str;
填空:1.0 2.0 3.c 改错:1.double sum=0.0; 2.sum/=c
28.利用简单迭代方法求方程:cox(x)-x=0的一个实根。
程序将输出结果Root=0.739086 float x0,x0=0.0;