文档库 最新最全的文档下载
当前位置:文档库 › C语言机试试题大全

C语言机试试题大全

C语言机试试题大全
C语言机试试题大全

1、程序填空题

给定的程序的功能是调用fun函数建立班级通讯录。通讯录中记录

每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘

读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制中。

\填空:(1)STYPE (2)FILE (3)fp

改错:(1) for(i=0;i<=sl;i++) (2) t[2*sl]='\0'或t[sl+sl]='\0'

编程:

*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);

2、程序填空题

给定程序的功能是:从键盘输入若干文本(每行不超过80个字符),写到文件myfile4.txt 中,用-1作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和Writetext实现。

填空:(1) *fw (2) str (3) str

改错:(1) void fun(long s,long *t)(2) s1=s1*10;

编程:int i,j=0,min=a[0].s;

for(i=0;i

{

if(a[i].s

{

j=0;b[j++]=a[i];min=a[i].s;

}

else if(min==a[i].s)

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

}

return j;

3、程序填空题

给定程序中,函数fun的功能是:讲自然数1~10以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。

填空:(1)fp(2)fclose(fp)(3)myfile3.txt

改错:(1)for(i=j+1;i

编程:*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;

4、程序填空题

给定程序中,函数fun的功能是:找出形参s所指字符串出现频率最高的字母(不区分大小写),并统计出其出现的次数,例如,形参s所指的字符串为:abcAbsmaxiess,程序执行后的输出结果为:

letter 'a':3 times

letter 's':3 times

填空:(1)"r" (2 )fs (3)ft 改错:(1)if (d%2==0) (2 )s/=10; 编程:int i = 0, j = 0; while(s[i]) { if(i % 2 == 0 && s[i] % 2 == 0)

t[j++] = s[i]; i++; } t[j] = 0;

5、程序填空题

给定程序中已经建立一个带有头结点的单向链表,链表中的各结点数据域中的数据递增有序链接,函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。

填空:(1)x (2)p (3)s

改错:(1)long k=1; (2)num/=10;

编程:int i;

float aver=0.0;

for(i=0;i

aver=aver/n;

return aver;

;

6、程序填空题

给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部节点中的数据,并释放该节点,使链表缩短。

填空:(1) next (2) t->data (3) t

改错:(1) void fun(char *a) (2) print("%c",*a);

编程:int i;

char *p=s,*q=t;

int n=0,m=0;

while(*p) /*计算串s的长度n,其中p为临时指针*/

{

n++;

p++;

}

while(*q) /*计算串t的长度m,其中q为临时指针*/

{

m++;

q++;

}

if(n>=m) /*比较m和n的值,设置p指向较大的指针*/

p=s;

else

p=t;

return p;

7、程序填空题

给定程序中建立一个带有头结点的单向链表,链表中的各节点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的节点,使之只保留一个。

填空:(1) q (2) next (3) next

改错:(1) 缺分号(2) p = i;

编程:*n=0; int i;

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

if(i%7==0||i%11==0)

a[*n++]=i;

8、程序填空题

给定的程序中,函数fun的功能是:在带有头结点的单向链表中,

查找数据域中值为ch的结点。找到后通过函数值返回该结点在

链表所处的顺序号;如不存在值为ch的结点,函数返回0值。

填空:(1)0或NULL (2)n (3)head,ch

改错:(1) for(i=0,t=0;p[i];i++) (2) c[t]='\0';

编程:

int i;

for(i=1;i

{

If( (ss[i]>='a'&&ss[i]<='z') ss[i]-=32;

9、程序填空题

给定程序中,函数fun的功能是:统计出带有头结点的单向链表中节点的个数,存放在形参n所指的存储单元中。

填空:(1) *n (2) next (3) head

改错:(1) a=NULL; (2) if(*r==*p)

编程:

int i,j=0;

for(i=0;i

if(s[i]%2==0) t[j++]=s[i];

t[j]='\0';

10、程序填空题

给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各节点数据域中值之和作为函数值返回。

填空:(1) data (2) next (3) head

改错:(1) while(*r) (2) *a=*r;a++;r++;

编程:int i,j=0;

for((i=0;i

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

t[j]='\0';

11、程序填空题

给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数数值返回,并把其串长放在形参n所指变量中。Ss所指字符串数组中共有M个字符串,且串长

填空:(1)M (2)< (3)k

改错:(1)if(('a'<=tt[i])&&(tt[i]<='z')) (2)tt[i]-=32;

编程:int i,j;

int t=0;

for(i=2;i

{j=2;

while(j

{if(i%j==0)

{xx[t]=i;

t++;

break;

}

j++;

}

*k=t;

12、程序填空题

给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如:形参s所指的字符串为:def35adh3kjsdf7。

执行结果为:defadhkjsdf3537

填空:(1) j++ (2) s[i]=t1[i] (3) j

改错:(1) for(j = i + 1; j < 6; j++) (2) *(pstr + i) =*( pstr + j);

编程:

int cnt=0;

char *p=ss;

while(*p)

{if(*p==c)

cnt++;

p++;}

return cnt;

13.程序填空题

给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7.执行结果为:def3*5adh3*kjsdf7*。

填空:(1)&& (2)0 (3)s[j]

改错(1)for(i=2;i<=m;i++)

(2)y+=1.0/(i*i);

编程题:int c[3][3];

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];}

14、程序填空题

给定的程序中,函数fun的功能是:统计形参s所指字符串中数字字

符出现的次数,并存放在形参t所指的变量中,最后在主函数中

输出,例如,形参s所指的字符串为abcdef35adgh3kjsdf7。输出

结果为:4。

填空:(1)s[i] (2)'9' (3) *t=n;

改错:(1) t=*x;*x=y; (2) return (t);

编程:

int i;

*n=0;

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

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

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

15、程序填空题

给定的程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数的位置,最右边被移出的字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)

例如:形参s所指字符串为:abcdefgh,执行结果为:

ahcbedgf

填空:(1) 1 (2) s[k] (3) c

改错:(1) long s = 0,t = 0; (2) t = t / 10;

编程:

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++;

}

16、程序填空题

在给定程序中,函数fun的功能是:对形参s所指字符串下标喂奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中形成一个新串。例如,形参s所指的字符串为baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

填空:(1) t=i (2) i (3) 0

改错:(1) while(fabs(t)>=num) (2) t=s/n;

编程:int p,m=0;

for(p=0;p

if(p!=n)

{b[m]=a[p];m++;}

b[m]='\0';

17、程序填空题

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

例如:s所指字符字符串为:baacda,c中得字符为:a,执行后所指字符串为:baaaacdaa。填空:(1) 0或'\0' (2) 0 (3) c

改错:(1) double sum=0.0; (2) sum/=c;

编程:int k;

float str=1.0,sum=1.0;

for(k=2;k<=n;k++)

{

sum=sum+k;

str=str+1/sum;

}

return str;

18、程序填空题

给定程序中,函数fun的功能是:N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边值为0.例如,N=3,m=2,有下列矩阵

1 2 3

4 5 6

7 8 9

程序执行结果为

0 0 1

0 0 4

0 0 7

填空:(1) i++ (2) m (3) m

改错:(1) while((high>=2)&&(n<10)) (2) 缺分号

编程:float x1=0.0,x0;

do

{

x0=x1;

x1=cos(x0);

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

return x1;

19、程序填空题

给定程序中,函数fun的功能是:将N*N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵

1 2 3

4 5 6

7 8 9

计算结果为

3 1 2

6 4 5

9 7 8

填空:(1)N (2)N-1 (3)0

改错:(1)s=s+(n+1.0)/n; (2)return t;

编程:int f0=0,f1=1,f;

do

{f=f0+f1;

f0=f1;

f1=f;

}while(f

return f;

20、程序填空题

给定程序中,函数fun的功能是:由NxN矩阵,将矩阵的外围元素顺时针旋转。

操作顺序是:首先将第一行元素的值存入临时数组r, 然后使第一列成为第一行,

最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列

列。例如:而N=3,有以下矩阵:

1 2 3

4 5 6

7 8 9

计算结果为

7 4 1

8 5 2

9 6 3

填空:(1)0 (2)j-- (3)j

改错:(1)double f(double x)

(2)缺分号

编程:double s=0.0;

int i;

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

s=s+log(1.0*i);

s=sqrt(s);

return s;

21、程序填空题

给定程序中,函数fun功能是:找出100至x(x想<999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当n值为500时,个各位数字之和为15的整数有

159,168,177,186,195,249,258,267,276,285,294,339,348,357,366,375,384,393,429,438,447,456,46 5,474,483,492,共有26个。

填空:(1) 0 (2) x (3) t++

改错:(1) int i,s1; (2) t[i]=s[s1-1-i];

编程:*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;

22、程序填空题

给定的程序中,函数fun的功能是:找出100~999之间(含有100和999)所有整数各位上的数字之和为x(x为以正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。例如:当x值为5时,100~999之间各位上数字之和为5的整数有:104,113,122,131,140,203,212,230,302,311,320,401,410,500.共有15个。当x的值为27时,各位数字之和为27的整数是:999。只有1个。

填空:(1)999 (2)t/10 (3)x

改错:(1) void fun(long s,long *t) (2)while(s>0)

编程:STREC tmp;

int i,j;

for (i=0;i

for (j=i+1;j

if(a[i],s

{tmp=a[i];

a[i]=a[j];

a[j]=tmp;

23、程序填空题

给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原位从高位到低位的顺序组成一个新的数,并作为函数值返回。

例如,从主函数输入一个整数:27638496,函数返回值为:26845.

填空:(1)1 (2)s (3)i*10

改错:(1)int fun(int n,int xx[][M]) (2)printf("%d",xx[i][j]);

编程:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);

24 程序填空题

给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数返回.

例如,输入一个整数:27638496,函数返回值为:64862.

填空: (1) 0 (2) 10*x (3) n/10

改错: (1) *t=0; (2) if (d%2!=0)

编程: char *p=p1;

while (*p)

p++;

while(*p2)

{*p++=*p2++;

*p=0;

}

25.程序填空(与教材18题对应))

给定的程序中,函数fun的功能是:将形参n所指变量中,各位上为

偶数的数去除..剩下的数按原来从高位的顺序组成一个新的数,并

通过形参兆时指针n传回所指变量.

例如:输入一个数:27638496,新的数:739.

填空(1) 10 (2) 0 (3) x

改错(1) if (n = = 0)

(2)缺分号

编程: long s=0, t;

int i=0,j,n=strlen(p),k,s1;

if (p[0]==' -')

i++;

for (j=i;j<=n-1;j++)

{t=p[j]-'0';

s1=10;

for (k=j;k

t*=s1;

s+=t;}

if (p[0]=='-')

return –s;

else return s;

26,程序填空题

给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。

S=(1*3)/(2*2)+(3*5)/(4*4)+(5*7)/(6*6)+……+(2n-1)(2n+1)/(2n*2n)例如:当形参n的值为10时,函数返回9.612558.

填空:(1)0 (2)n (3)(t*t)

改错:(1)for(i=0;str[i];i++)

(2) for(i=0; str[i];i++)

编程:double s;

float n,t,pi;

t=1;pi=0;n=1.0;s=1.0;

while((fabs(s))>=eps)

{pi+=s;

t=n/(2*n+1);

s*=t;

n++;}

pi=pi*2;

return pi;

27、程序填空题(与22题对应)

给定程序中,函数fun的功能是:计算下式前n项的和

S=(1*3)/(2*2)-(3*5)/(4*4)+(5*7)/(6*6)-…+(-1)^(n-1)*(2n-1)(2n+1)/(2n*2n)

作为函数植返回。

例如,当形参n的值为10时,函数返回:-0.204491

填空:(1)1 (2)2*i (3) (-1)

改错:(1)缺分号(2)if (m= =k)

编程:int i;

*max=a[0];

*d=0;

for(i=0;i

if(*max

{*max=a[i];

*d=i;}

28、程序填空题

给定程序中,函数fun的功能是计算下式

s=3/(2*2)-5/(4*4)+7/(6*6)-…+(-1) ^ (n-1)(2n+1)/(2n*2n)

直到|(2n+1)/(2n*2n)|<10*e(-3)

并把计算结果作为函数值返回。

例如:若形参e的值为1e-3,函数的返回值为0.551690。

填空:(1)3.0 (2)> (3) (2*i+1)

改错:(1)double fun (int n)

(2)s=s+(double)a/b;

编程:int i,j,max=a[0][0];

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

for (j=0;j

if (max

max=a[i][j];

return max;

29、程序填空题

给定程序中,函数fun的功能是计算下式

s=1/(2*2)+3/(4*4)+5/(6*6)+....(2n-1)/(2n*2n)

直到|(2n-1)/(2n*2n)|<=10e-3,并把计算结果作为函数值返回。

例如,若形参e的值为1e-3,函数的返回值2.985678.

填空:(1)0(2)i++(3)2.0*i

改错:(1)void fun (char *s,char *t)(2)t[2*d]='\0';

编程:int i,j=o;

for(i=1;i

if (i%2==0&&s[i]%2)t[j++]=s[i];

t[j]='\0';

30 程序填空题

给定程序中,函数fun的功能是,将形参s所指字符串的所有字母

字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作

为函数值返回。

例如,s所指字符串为:asd123fgh543df处理后新字符串为

asdfghdf123543.

填空:(1)s[i] (2)k (3)0

改错:(1)while (*w) (2)if(*r==*p)

编程:int i,j=0;

for(i=1;i

if(s[i]%2)t[j++]=s[i];

t[j]='\0';

31、程序填空题

给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。例如。有下列矩阵:

1 2 3

4 5 6

7 8 9

10 11 12

若k为2,程序执行结果为:

7 8 9

4 5 6

1 2 3

10 11 12填空:(1) k (2) N (3) a[k][i]

改错:(1) for(i=strlen(t)-1;i;i--) (2) if(t[j]>t[j+1])

编程:char *p=ss

int i=0;

while(*p)

{

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

*p-=32;

p++;

i++;

}

32、程序填空题

给定程序中,函数fun的功能是:将a所指3*5矩阵中第k列的元素左移到第0列,第k 列以后的每列元素依次左移,原来左边的各列依次绕道右边。

例如,有以下矩阵:

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

若结果为,程序执行结果为:

3 4 5 1 2

3 4 5 1 2

3 4 5 1 2

填空:(1)k (2)N-1 (3)temp

改错:(1)void fun(int a[][M],int m)(2)a[j][k]=(k+1)*(j+1);

编程:

*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;

33、程序填空题

给定程序中,函数fun的功能是:在3*4的矩阵中代出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。

例如:有下列矩阵

1 2 13 4

7 8 10 6

3 5 9 7

程序执行的结果为:find:a[2][2]=9

填空:(1)j (2)0 (3)i++

改错:(1)for(i=2;i<=m;i++) (2)y-=1.0/(i*i);

编程:float av=0.0;

int i,j=0;

for(i=0;i

av+=score[i];

av/=m;

for(i=0;i

if(av>score[i])below[j++]=score[i];

return j;

10;

34、程序填空题

给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。

例如,形参s所指的字符串味:abcdefgh,n的值为5,程序执行后t所指字符串数组中的字符串为:defgh.

填空:(1)t,s(2)s[i](3)0

改错:(1)if (i%k==0)(2)if(k>=i)

编程:int i=0;

*n=0;

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

if((x%i==0)&&(i%2))

pp[(*n)++]=i;

35、给定程序中,函数fun的功能是:在形参s所指字符串是否是“回文”(Palindrome),若是,函数返回值为1;不是,函数返回值为0。“回文”是正读和反读都一样的字符串(不区分大小写字母)。

例如,LEVEL和Level是“回文”,而LEVLEV不是“回文”。

填空:(1)s (2)—(3) return 0

改错:(1)double fun (int n)

(2)c=a;a+=b;b=c;

编程:int r=0,temp,p,sign=1;

for(temp=m+1;temp

{for(p=2;p

{if(temp%p!=0)

sign=1;

else

{sign=0;

break;

}

}

if(sign= =1&&p>=temp)

{if(k>=0)

{xx[r++]=temp;

k- -;}

else break;

}

}

36 程序填空题

给定程序中,函数fun的功能是:计算出形参s所指定字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。

例如,形参s所指的字符串为:This is a C languge program,函数的返回值为6。

填空:(1)n++ (2)0 (3)s++

改错:(1)t+=s[k]; (2)*aver=ave;

编程:int i,pos=0,max=*s;

for(i=1;i

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

{max=*(s+i);

pos=i;

}

}

*k=pos;

37、程序填空题

给定程序中,函数fun的功能是:将形参s所指字符串中所有的ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。例如:形参s所指的字符串为:Abc@156*,程序执行后t所指字符串数组中的字符串为:A@156*。

填空:(1) *s (2) s++ (3) n

改错:(1) int j,c=0; double xa=0.0; (2) if(x[j] >= xa)

编程:float result,temp=1.0;

int i;

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

temp=temp*i;

result=temp;

for(temp=1.0,i=1;i<=n;i++)

temp=temp*i;

result=result/temp;

for(temp=1.0,i=1;i<=m-n;i++)

temp=temp*i;

result=result/temp;

return result;

38. 程序填空题

给定程序中,函数fun的功能是:将形象s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。

例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。

填空:(1)48 (2)s++ (3)sum

改错:(1)if ((k%13= =0) || (k%17= =0)) (2) ]

int i;

for(i=21;i<=n;i++)

if((i%3= =0)&&(i%7 = =0))

sum=sum+i;

return sprt(sum);

39、程序填空题

给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分

大小写),并统计出其出现的次数。

例如,形参s所指字符串为:abcAbsmaxless,程序执行后的输出结果为:

letter ‘a’:3 times

letter ‘s’:3 times

填空:(1) *s (2) 1 (3) k[n]

改错:(1) double fun(int k) (2) return s;

编程:double s=0.0;

int i;

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

s=s+1.0/(i*(i+1));

return s;

40、程序填空题

给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果,ss所指字符串数组中共有N个字符串,且串长小于M。

填空:(1) i (2) ps[j] (3) tp

改错:(1) double fun(int n) (2) return sum;

编程:int i; double a=1,b=1,s=1; for(i=1;i<=n;i++)

41、程序填空题

给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用,规定在2处使f指向函数f1,在3处使f指向函数f2。当调用正确时,程序输出:

x1=5.000000,x2=3.000000,

x1*x1+x1*x2=40.000000

填空:(1)double (2)f1 (3) f2

改错:(1)p=h->next; (2)p=p->next;

编程:

int i,n=0,fg=1;

char *p=str;

while(*p)

{n++;p++;}

for(i=0;i

if(str[i]==str[n-1-i]);

else

{fg=0;

break;}

return fg;

42、程序填空题

给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序,即若原链表结点数据从头至尾的数据为:10,4,2,8,6,排序后链表结点数据域从头至尾的数据为:2,4,6,8,10。

填空:(1)h->next (2)p->next (3)>=

改错:(1)p=h->next; (2)p=p->next;

编程:int i,j;

for(i=0;i

for(j=0;j

{b[*n]=*(*(s+i)+j);

*n=*n+1;}

43、程序填空题给定程序中,函数fun的功能是将不带头结点的单向链表逆置,即若链表中从头至尾结点数据域依次为:2,4,6,8,10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。填空:(1)NODE *(2)q(3)r 改错:(1)if(i%2 || s[i]%2==0)(2)t[j]=0; 编程:for(j=0;j

44..程序填空题

给定程序中,函数fun功能是将不带头结点的单向链表逆置,即若原链表从头到尾结点数据域依次为:2 4 6 8 10 逆置后,从头到尾结点数据域依次为:10 8 6 4 2

填空:(1)next (2)0 (3)r

改错:(1)r=t;(2)if(*r= =0)

编程:int i,j,k=0;

for(i=0;i

{for(j=0;j

if*(*(a+i)+j)

{b[k]=*(*(a+i)+j};

k++;}

else

break;

b[k]=’\0’;}

45、程序填空题

给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序,即若原链表结点数据域从头到尾的数据为:10,4,2,8,6,排序后链表结点数据域从头到尾的数据为:2,4,6,8,10。

填空:(1)p->next (2)q (3)p->next

改错:(1)'\0' (2)s++;

编程:int b[N],i,j=0;

for(i=p+1;i

{b[j]=w[i];j++;}

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

{b[j]=w[i];j++;}

for(i=0;i

46、程序填空题

给定的程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出,例如,形参s所指的字符串为abcdef35adgh3kjsdf7。输出

结果为:4。

填空:(1) double (2) f1 (3) f2 改错:(1) char *fun(char *s, char *t) (2) ss++ (3) tt++ 编程:char a[N]; int i; for(i=0;i=0;m--;i--) w[i]=a[m];

47、程序填空题

给定的程序中,函数fun的功能是将形参给定的字符串,整数、浮点数写到文本文件中,再用字符的方式从此文本文件中逐个读入并显示在终端屏幕上。

填空:(1) FILE * (2) fp (3)ch

改错:(1)s[j++]=s[i];

(2) s[j]= '\0';

编程:for(j=0;j

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

48、程序填空题

给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi 和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。

填空;(1)File * (2) fclose(fp) (3) fp

改错;(1)t=(STU*)calloc(sizeof(STU),m);

(2) t[k]=b[j];

编程;int i,t,j=0,*p=a;

t=p[0];

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

if(t==p[i]);

else

{a[j]=t;

t=p[i];

j++;

}

if(i>=n)

a[j]=t;

return j;

49、程序填空题

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均

以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。

填空:(1)"rb" (2)> (3)fwrite

改错:(1)p=s; (2) ; (缺分号)

编程:int i;

for(i=0;j

for(i=0;i

if(a[i]>=100)b[10]++;

else b[a[i]/10]++;

50、程序填空题

程序通过定义学生结构变量,储存了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指的文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据,其他学生的数据不变。填空:(1)filename (2 ) fp (3) fp

改错:(1)p=(NODE*)malloc(sizeof(NODE));

(2)return h;

编程:int i,n=0;

for(i=0;i

{if(s[i]>=’ a’&&s[i]<=’ z’&&s[i+1]=’ ’||s[i+1]==’\0’)

n++;}

他学生的数据不变。

填空:(1)filename (2 ) fp (3) fp

改错:(1)p=(NODE*)malloc(sizeof(NODE));

(2)return h;

编程:int i,n=0;

for(i=0;i

{if(s[i]>=’ a’&&s[i]<=’ z’&&s[i+1]=’ ’||s[i+1]==’\0’)

n++;}

C语言基础选择试题(一)

C语言基础选择试题(一) 2123 答案 :C 所谓“裸机”是指( )。 a:没有安装机箱 b:没有安装应用软件 c:没有安装任何软件的计算机 c:只安装操作系统的计算机 2145 答案 :D 可用于大小写字母转换的键是( )。 a:Esc b:CapsLock c:Shift c:CapsLock或Shift 1068 答案 :D 计算机病毒的主要特征是()。 a:只会感染不会致病 b:造成计算机器件永久失效 c:格式化磁盘 c:传染性、隐蔽性、破坏性和潜伏性 1054 答案 :D 个人计算机属于( ) 。 a:小型计算机 b:中型计算机 c:巨型计算机 d:微型计算机 1080 答案 :B 用汉语拼音输入“长沙”两个汉字,输入“changsha”8个字符,那么,“长沙”两字的内码所占用的字节数是()。 a:2 b:4 c:8 c:16 1053 答案 :A 操作系统的功能是( )。 a:提高系统资源的利用率,方便用户使用计算机 b:负责给程序和数据分配内存空间 c:负责各种文件的管理 c:管理磁盘文件和I/O设备管理 1055 答案 :C 组建以太网时,通常都是用双绞线把若干台计算机连到一个中心的设备上,这个设备叫做()。 a:网络适配器 b:服务器 c:集线器 c:总线 1057 答案 :D

应用软件是指( )。 a:所有能够使用的软件 b:能被各应用单位共同使用的某种软件 c:所有微机上都应用的基本软件 c:专门为某一应用目的而编制的软件 1078 答案 :B 为网络提供共享资源并对这些资源进行管理的计算机称之为()。 a:网卡 b:服务器 c:工作站 c:网桥 1082 答案 :B 在Windows98中运行应用程序时,下列哪个操作调不出帮助信息()。 a:按F1键 b:按F10键 c:单击“帮助”菜单 c:单击窗口右上角“”按钮 1068 答案 :A ISO/ OSI参考模型七层协议中第一层是()。 a:物理层 b:数据链路层 c:网络层 c:传输层 2083 答案 :A 解释程序的功能是()。 a:解释执行高级语言程序 b:解释执行汇编语言程序 c:将汇编语言程序翻译成目标程序 c:将高级语言程序翻译成目标程序 1071 答案 :B 在计算机网络术语中,WAN的中文意义是()。 a:以太网 b:广域网 c:互联网 c:局域网 1055 答案 :C 主存储器又称为()。 a:RAM b:ROM c:内存 c:外存 1056 答案 :D 把同种或异种类型的网络相互连接起来称为()。 a:广域网 b:万维网(WWW c:城域网 c:互联网

c语言机试经典编程题重点!!!

本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。 (2)考核内容:主要是算法设计与实现。考题来自本学期布置的作业、例题及一些补充的题目。 (3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个组的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“王梓丞.cpp”。 (4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U盘、磁盘或计算器) ,不能携带任何类型的通讯工具,包括无线电接收器、移动电话。 (5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。 (6)其它有关事项由主考教师和监考人员负责处理。 附:考试题集 1.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以因为 在大奖赛上获奖而加5分,总分不超过100分。编程序,输入某同学的考试成绩,回答是否在竞赛中获奖,计算并输出该某同学的程序设计课成绩。 #include void main(){ int m,n; printf("请输入考试成绩:\n"); scanf("%d",&m);

printf("请选择获奖情况:1 获奖;2 未获奖\n"); scanf("%d",&n); switch (n){ case 1: m=m+5;break; case 2: m; } if(m>100) m=100; printf("你的最终成绩为:%d\n",m); } 2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2 月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。 #include int year,a; void main(){ printf("请输入年份月份:"); scanf("%d%d",&year,&a); if(a==1||a==3||a==5||a==7||a==8||a==10||a==12) printf("这个月有31天\n"); else{ if(a==2){ if((year%4==0)&&(year%100!=0)||(year%400==0)) printf("这个月有29天\n"); else printf("这个月有28天\n");

_《C语言》机试题(成-部分答案)

上机试题(一) 1 已知A,B为正整数, A2 试求F(1)+F(3)+F(5)+……+F(49)值。 提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。答案:12586269025 ………………………………………………………………………………………………… 上机试题(四) 1设有6个十进制数字a,b,c,d, e,f ,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。 答案:16 2一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数。求出200到500之间所有的完数之和。 答案:496 ………………………………………………………………………………………………… 上机试题(五) 1 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 答案:39 2 编写程序,求在5000以内能被17或者23整除的正整数的个数。 答案:499 ………………………………………………………………………………………………… 上机试题(六) 1 设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数abcd的和。

国家二级C语言机试(C语言基础知识)模拟试卷8

国家二级C语言机试(C语言基础知识)模拟试卷8 (总分:60.00,做题时间:90分钟) 一、选择题(总题数:30,分数:60.00) 1.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是 (分数:2.00) A.一条C语句可能会被转换成多条机器指令 B.一条C语句对应转换成一条机器指令√ C.一条C语句可能会被转换成零条机器指令 D.某种类型和格式的C语句被转换成机器指令的条数是固定的 解析:解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语言的语句条数和机器指令的条数不是一对一的关系。 2.以下选项中不属于C语言程序运算符的是 (分数:2.00) A.sizeof B.() C.<> √ D.&& 解析:解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。而<>不是C语言的运算符,C语言中!=表示不等于。 3.若变量已正确定义并赋值,以下不能构成C语句的选项是 (分数:2.00) A.A=a+b: B.B++; C.a=a+b √ D.A?a:b; 解析:解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。 4.以下叙述中正确的是 (分数:2.00) A.程序必须包含所有三种基本结构才能成为一种算法 B.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 C.只有简单算法才能在有限的操作步骤之后结束 D.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令√ 解析:解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来捕述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。 5.下列选项中,不能用作标识符的是 (分数:2.00) A._1234 B._1_2 C.int_2_ D.2_int_ √ 解析:解析:C语言中标以符必须以字母或者下划线开始,选项D)中是以数字开始的不能作为标识符。6.以下选项中作为C语言合法常量的是 (分数:2.00) A.-80.√ B.-080

华为C语言机试题面试题汇总

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50 #include main() { int num[50]={0}; int i,n; printf("请输入整型数组的长度(1~50):"); scanf("%d",&n); printf("请输入整型数组的元素:"); for (i=0;inum[j]) min_num=num[j]; } int sum=min_num+max_num; printf("数组中最大与最小值之和:%d\n",sum); return 0; } 2.求两个长长整型的数据的和并输出,例如输入1233333333333333。。。3111111111111111111111111.。。。,则输出。。。。 #include #include #include main() { char *num1,*num2;//两个长长整型数据 char *sum; //int temp; int len_num1,len_num2; //两个长长整型数据的长度

c语言上机机试习题

一、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 程序源代码: main() { longf1,f2; inti; f1=f2=1; for(i=1;i<=20;i++) {printf("%12ld%12ld",f1,f2); if(i%2==0)printf("\n");/*控制输出,每行四个*/ f1=f1+f2;/*前两个月加起来赋值给第三个月*/ f2=f1+f2;/*前两个月加起来赋值给第三个月*/ } } 上题还可用一维数组处理,youtry! 二、题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 程序源代码: #include"" main() { intm,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) {k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0)

{leap=0;break;} if(leap){printf("%-4d",m);h++; if(h%10==0) printf("\n"); } leap=1; } printf("\nThetotalis%d",h); } 三、题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 程序源代码: main() { inti,j,k,n; printf("'waterflower'numberis:"); for(n=100;n<1000;n++) { i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf("%-5d",n); } } printf("\n"); } 四、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

国家二级C语言程序设计机试(选择题)模拟试卷3

国家二级C语言程序设计机试(选择题)模拟试卷3 (总分:80.00,做题时间:90分钟) 一、选择题(总题数:40,分数:80.00) 1.下列数据结构中,属于非线性结构的是( )。 (分数:2.00) A.循环队列 B.带链队列 C.二叉树√ D.带链栈 解析:解析:线性结构的特点:①有且只有一个根结点;②每一个结点最多有一个前驱,也最多有一个后继。不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继结点,属于非线性结构。 2.算法的空间复杂度是指( )。 (分数:2.00) A.算法在执行过程中所需要的计算机存储空间√ B.算法所处理的数据量 C.算法程序中的语句或指令条数 D.算法在执行过程中所需要的临时工作单元数 解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A。 3.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。 (分数:2.00) A.循环队列 B.栈√ C.队列 D.二叉树 解析:解析:栈是按“先进后出”的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为B。 4.软件设计中划分模块的一个准则是( )。 (分数:2.00) A.低内聚、低耦合 B.高内聚、低耦合√ C.低内聚、高耦合 D.高内聚、高耦合 解析:解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B。 5.结构化程序的三种基本控制结构是( )。 (分数:2.00) A.顺序、选择和重复(循环) √ B.过程、子程序和分程序 C.顺序、选择和调用 D.调用、返回和转移 解析:解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环),故正确答案为A。 6.软件需求规格说明书在软件开发中的作用不包括( )。 (分数:2.00) A.软件设计的依据 B.软件可行性分析的依据√ C.软件验收的依据

c语言机试题汇总

第一部分-分支、循环部分 1、某一次考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。 2、从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位。例如输入355和113, 输出3.14159. 3、用while循环结构编写程序打印ASCII码为33-127的字符 4、用do-while,for循环结构编写程序打印ASCII码为33-127的字符 5、用for循环结构编写程序打印ASCII码为33-127字符 6、在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构 7、输入一个整数将其倒着输出,如54321 8、计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4 9、从键盘输入一整数n,计算1*1+2*2+...+n*n的值 10、用while 循环计算1+2+……+100的和 11、用do while循环计算1+2+……+100的和 12、用for 循环计算1+2+……+100的和 13、输入一个小于等于10的整数n ,计算n! 14、输入两个正整数m和n,计算m!+n!,m和n的值均小于10。 15、用循环语句,计算1~100之间的所有3的倍数之和 16、用循环语句,计算100-200之间的所有7的倍数之和 17、输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数 18、输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数 19、输入一个整数,统计它有几位数 20、编写程序,输出1到50中间所有能被3整除的正整数 21、把100~200之间不能被3整除的输出 22、编程Y=1+3+5+7+ (111) 23、编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积 24、编程实现九九乘法表 25、求1到100奇数和 26、求1到100偶数和 27、编程求200以内所有质数(素数) 28、从键盘输入一个整数,求该数的绝对值 29、从键盘输入+、-、*、/中的任一个,输出对应的英文单词:plus、minus、mutiply、divide,如输入 的不是这4个字符中的任一个,则输出“sorry,you are wrong”。 30、从键盘输入一个字符,判断其是否为a,r,或f,并输出相应的信息(不区分大小写)。 31、编一程序,对于给定的一个百分制成绩,输出用像'A','B','C','D','E'表示的等级成 绩。设:90分以上为'A',80~89分为'B',70~79分为'C',60~69分'D',60分以下为'E'。(要求用switch语句编程)。 32、输入一个整数,判断它能否被3,5,7整除。 33、用整数1~12依次表示1~12月,由键盘输入一个月份数,输出对应的季节英文名称(12~2 月为冬季;3~5月为春季;6~8月为夏季;9~11月为秋季。要求用if嵌套实现)。 34、编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3 时显示b*c之积,a为4时取b/c之商,a为其他数值时不做任何操作的程序。

国家二级C语言机试(C语言程序设计)模拟试卷33

国家二级C语言机试(C语言程序设计)模拟试卷33 (总分:70.00,做题时间:90分钟) 一、选择题(总题数:35,分数:70.00) 1.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是 (分数:2.00) A.while(ch=getchar0='N')printf("%c",ch); B.while(ch=getchar()=="N")printf("%c",ch); C.while((ch=getchar())!='N')printf("%c",ch);√ D.while((ch=getchar())=='N')printf("%c",ch); 解析:解析:while循环的执行过程如下:①计算while后面圆括号中表达式的值,当值为非0时,执行步骤②;当值为0时,执行步骤④;②执行循环体一次:③转去执行步骤①;④退出循环。在选项C 中,表达式(ch=getchar())!='N'表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。 2.若有以下程序 main(){int a=-2,b=0; while(a++) ++b; pfintf("%d,%d\n",a,b);} 则程序的输出结果是 (分数:2.00) A.0,2 B.1,2 √ C.1.3 D.2,3 解析:解析:循环体执行两次,第一次表达式a++值为-2,a的值为-1,执行循环体++b,b值为1,第二次表达式a++值为-1,a的值等于0,执行++b,b值为2,第三次判断条件a++,表达式值为0,不执行循环体,但是条件判断以后,a的值为1。 3.由以下while构成的循环,循环体执行的次数是int k=0;while(k=1)k++; (分数:2.00) A.一次也不执行 B.执行一次 C.无限次√ D.有语法错,不能执行 解析:解析:循环条件表达式为赋值表达式k=-1,因此循环执行无限次。 4.有以下程序 main(){ant a=-2,b=0; while(a++&&++b); printf("%d,%d\n",a,b);} 程序运行后输出结果是 (分数:2.00) A.0,3 B.1,2 √ C.1,3 D.0,2 解析:解析:循环体为空,共执行2次。第一次变量a初值为-2,b初值为0,表达式a++&&++b值为1,同时a的值为-1,b的值为1,第二次循环条件判断以后,a的值为0,b的值2,执行循环体空,第三次判断条件表达式值为0,不执行循环体,而a的值为1,但是表达式a++的值为0,因此不计算表达式++b的值,b的值仍为2。 5.关于do循环体while(条件表达式);以下叙述中正确的是 (分数:2.00) A.循环体的执行次数总是比条件表达式的执行次数多一次 B.条件表达式的执行次数总是比循环体的执行次数多一次 C.条件表达式的执行次数与循环体的执行次数无关

c语言机试经典编程题(重点资料)!!!!!!

c语言机试经典编程题(重点资料)!!!!!!

本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。 (2)考核内容:主要是算法设计与实现。考题来自本学期布置的作业、例题及一些补充的题目。 (3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个组的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“2012216827王梓丞.cpp”。(4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U 盘、磁盘或计算器) ,不能携带任何类型的通讯工具,包括无线电接收器、移动电话。 (5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。 (6)其它有关事项由主考教师和监考人员负责处理。 附:考试题集

1.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以因为 在大奖赛上获奖而加5分,总分不超过100分。编程序,输入某同学的考试成绩,回答是否在竞赛中获奖,计算并输出该某同学的程序设计课成绩。 #include void main(){ int m,n; printf("请输入考试成绩:\n"); scanf("%d",&m); printf("请选择获奖情况:1 获奖;2 未获奖\n"); scanf("%d",&n); switch (n){ case 1: m=m+5;break; case 2: m; } if(m>100) m=100; printf("你的最终成绩为:%d\n",m); } 2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2 月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。 #include int year,a; void main(){

四川省二级c语言29次机试试题及

(第一套) (60分钟) 一、程序调试题(40分) 磁盘上有一程序test1-1.c,其中函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长 # include # define M 5 # define N 20 void fun(char (*ss)[N]) { int i,j,k=0,n,m,len; for(i=0;i=0;j--) ss[i][m--]=ss[i][j]; for(j=0;j

C语言考试题

〖第1题〗『填空』(1分) 已知 i=5;写出语句 a=--i; 执行后整型变量 a 的值是【1】. 答案: 1). 4 〖第2题〗『填空』(1分) 为了避免嵌套条件语句的二义性,C++语言规定else 与其前面最近的【1】语句配对. 答案: 1). if 〖第3题〗『填空』(1分) 若所用变量都已正确定义,请填写以下程序段的输出结果【1】. for(i=1;i<=5;i++); cout<<"OK"<b? a:b; return c; } void main() { int a=8; cout<z的值为【1】. 答案: 1). 1 〖第6题〗『填空』(1分) int x=2;z=++x+1; 则z的值为【1】. 答案: 1). 4 〖第7题〗『填空』(1分) int x=2,y=3,z=4; 则表达式x+(y>!z)的值为【1】. 答案: 1). 3 〖第8题〗『填空』(1分) 表达式18 && 53 的值是【1】. 答案: 1). 1 〖第9题〗『填空』(1分) 在C++程序中使用文件结束后要关闭文件,关闭文件 的函数名是【1】.

答案: 1). close 〖第10题〗『填空』(1分) 当一个函数无返回值时,函数的类型应定义为【1】 答案: 1). void 〖第11题〗『填空』(1分) 在C++程序中使用文件前打开文件,打开文件的函数名是【1】. 答案: 1). open 〖第12题〗『填空』(1分) 设x=2.5,a=7,y=4.7,算术表达式 x+a%3*(int)(x+y)%2/4的值为【1】. 答案: 1). 2.5 〖第13题〗『填空』(1分) 执行语句char str[81]="abcdef";后,字符串str结束标志存储在str[【1】] (在括号内填写下标值)中. 答案: 1). 6 〖第14题〗『填空』(1分) 执行下列语句后,b 的十进制值是【1】. int x=240,y=15,b; char z='A'; b=(( x && y ) && ( z < 'a' )); 答案: 1). 1 〖第15题〗『填空』(1分) cin.get()函数只能接收一个【1】. 答案: 1). 字符 〖第16题〗『填空』(1分) int x=2,y=3,z=4; 则表达式x+y>!z的值为【1】. 答案: 1). 1 〖第17题〗『填空』(1分) int x=y=z=2;x=y==z; 则x的值为【1】. 答案: 1). 1 〖第18题〗『填空』(1分) C++语言程序的三种基本结构是:顺序结构,选择结构,【1】结构. 答案: 1). 循环

国家二级C语言机试(C语言基础知识)模拟试卷19

国家二级C语言机试(C语言基础知识)模拟试卷19 (总分:60.00,做题时间:90分钟) 一、选择题(总题数:30,分数:60.00) 1.DOS文件系统的组织结构属于 (分数:2.00) A.星形结构 B.网形结构 C.环形结构 D.树形结构√ 解析:解析:DOS中目录结构是层次的,由根目录到子目录形成一个树型结构。 2.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是 (分数:2.00) A.C语言程序仅可以编译执行√ B.C语言程序仅可以解释执行 C.C语言程序既可以编译执行又可以解释执行 D.以上说法都不对 解析:解析:C语言是编译型语言,只在编译链接后才能执行。 3.以下叙述中错误的是 (分数:2.00) A.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 B.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 C.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令√ D.C语言源程序经编译后生成后缀为.obi的目标程序 解析:解析:C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的程序称为“源程序”,把由二进制代码表示的程序称为“目标程序”。C语言编写的源程序就是一ASCH的形式存放在文本文件中的。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件,把此.obj文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。 4.下列叙述中错误的是 (分数:2.00) A.C程序可以由多个程序文件组成 B.一个C语言程序只能实现一种算法√ C.C程序可以由一个或多个函数组成 D.一个C函数可以单独作为一个C程序文件存在 解析:解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。在C语言中一个算法是用函数来实现的。一个C语言源程序由许多函数组成,这些函数都是根据实际任务,确定具体的算法,由用户自己编写。C语言源程序可以放在不同的文件中.同一个源程序中的函数也可放在不同的文件中,所以一个C 语言程序可以实现多种算法。 5.以下叙述中错误的是 (分数:2.00) A.结构化程序由顺序、分支、循环三种基本结构组成 B.C语言是一种结构化程序设计语言 C.使用三种基本结构构成的程序只能解决简单问题√ D.结构化程序设计提倡模块化的设计方法 解析:解析:结构化程序由顺序结构、选择结构和循环结构3种基本结构组成。已经证明,由3种基本结构组成的算法可以解决任何复杂的问题。由3种基本结构所构成的算法称为结构化算法;由3种基本结构所构成的程序称为结构化程序。

全国计算机二级C语言机试试题

第1套:1、程序填空题 给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写在文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 填空:(1)FILE* (2)fclose(fp) (3)fp 改错:(1)t=(STU *)calloc(sizeof(STU),m); (2)t[k]=b[j]; 编程:int i,t,j=0,*p=a; t=p[0]; for(i=0;i<=n;i++) if(t=p[i]) ; else { a[j]=t; t=p[i]; j++;} if(i>=n) a[j]=t; return j; 第2套:程序填空题 给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。 例如,从主函数输入一个整数:2763849626846。 填空:(1)1 (2)s〉0 (3)i*10 改错:(1)int fun(int n,int xx[][M]); (2)printf(“%4d”,xx[i][j]); 编程:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10); 最后在黑色对话框中输入45 12后按回车键 第3套:程序填空题 给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共有15个。当x值为27时,各位数字之和为27的整数是:999,只有1个。 填空:(1)999 (2)t/10 (3)x 改错:(1)void fun(long s,long *t) (2)while(s>0) 编程:(注意:此题在/*请按题目要求完成以下代码*/的下面填入答案) if(a[i].s < a[j].s) {tmp=a[i]; a[i]=a[j]; a[j]=tmp; } 第4套:程序填空题 给定程序中,函数fun的功能是:找出100至x(x<999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。 填空:(1)0 (2)x (3)t++ 改错:(1)int i,s1; (2)t[i]=s[s1-1-i]; 编程:*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10; 最后在黑色对话框中输入45 12后按回车键 第5套:程序填空题 给定程序中,函数fun的功能是计算下式s=1/(2*2)+3/(4*4)+5/(6*6)+…+(2n-1)/(2n*2n)

C语言机试试卷及答案

试卷编号:480 所属语言:C语言 试卷方案:C语言测验 试卷总分:100分 共有题型:3种 一、单选共30题(共计60分) 第1题(2.0分)题号:5515 难度:中第8章C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是(). A:地址传递 B:单向值传递 C:由实参传给形参,再由形参传回给实参 D:由用户指定的传递方式 答案:B 第2题(2.0分)题号:5448 难度:中第7章若有说明:int a[10];则对a数组元素的正确引用是(). A:a[10] B:a[3,5] C:a(5) D:a[10-10] 答案:D 第3题(2.0分)题号:5291 难度:中第2章下列程序的输出结果是(). main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:5230 难度:中第2章在C语言中,char型数据在内存中的存储形式是().

A:补码 B:反码 C:原码 D:ASCII码 答案:D 第5题(2.0分)题号:5420 难度:中第6章语句while(!E);中的表达式!E等价于(). A:E==0 B:E!=1 C:E!=0 D:E==1 答案:A 第6题(2.0分)题号:5429 难度:中第6章若i为整型变量,则以下循环执行次数是(). for(i=2;i==0;) printf("%d",i--); A:无限次 B:0次 C:1次 D:2次 答案:B 第7题(2.0分)题号:5526 难度:中第8章C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为(). A:void B:double C:int D:char 答案:C 第8题(2.0分)题号:5233 难度:中第2章下列标识符中,不合法的C语言用户自定义标识符是(). A:printf B:enum

C语言机试试题大全

1、程序填空题 给定的程序的功能是调用fun函数建立班级通讯录。通讯录中记录 每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘 读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制中。 \填空:(1)STYPE (2)FILE (3)fp 改错:(1) for(i=0;i<=sl;i++) (2) t[2*sl]='\0'或t[sl+sl]='\0' 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10); 2、程序填空题 给定程序的功能是:从键盘输入若干文本(每行不超过80个字符),写到文件myfile4.txt 中,用-1作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和Writetext实现。 填空:(1) *fw (2) str (3) str 改错:(1) void fun(long s,long *t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

二级C语言机试试题

请补充fun函数,该函数的功能:按"0" 到"9"统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意: 不能使用字符串库函数。 例如,输入g1ters64879fgfd,结果为1=2,3=2,5=2,7=1 ,9=1。 请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。 注意:部分源程序给出如下。 # in clude <> # in clude <> # define N 500 void fun( char *t,i nt coun t[]) { int i,j; int a[10]; char *p=t; for(i=0;i<10;i++) { coun t[i]=0; a[i]=0; } while( __ 1 __ ) { if(*p>='0' && *p<='9') —2—; p++; } for(i=1,j=0;i<10;i=i+2,j++) —3—; } main () { char s[N]; in t cou nt[10],i; prin tf("\nPlease en ter a char stri ng:"); gets(s); prin tf("\nThe orig inal stri ng\n"); puts(s); fun( s,co un t); prin tf("\nThe coun tber of leter\ n"); for(i=0;i<5;i++) { prin tf("\n ”); printf("%d=%d ",2*i+1,count[i]); } prin tf("\n"); } 【答案】(1)*p (2)a[*p-'0']++ (3)count[j]=a[i] F列给定程序中,函数fun的功能是从字 符串s中删除所有小写字母” c"。 请修改程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。 # in clude <> void fun( char *str) { int i,j; for(i=j=0;str[i]!='\0';i++) /****error******/ if(str[i]!='c') str[j]=str[i]; /****error******/ str[i]='\0'; } main () { char str[100]; printf("Enter a string with 'c':"); gets(str); prin tf("The origi nal stri ng :"); puts(str); fun( str); printf("The string after deleted:"); puts(str); prin tf("\n\n"); } 【答案】(1) str[j++]=str[i]; str[j]='\0'; M名学生的成绩已在主函数中放入一个带头节点的链表结构中,a指向链表的头节点。请编写函数fun,它的功能是求出平均分,由函数值返回。 例如,若学生的成绩是69、85、91、72、64,则平均分应当是。 请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 注意:部分源程序给出如下。 # in clude <> # in clude <> # define M 5 struct list { double s; struct list *n ext; }; typedef struct list SCORE; double fu n(SCORE *a)

相关文档