C++改错和填空题题库

C++改错和填空题题库
C++改错和填空题题库

━━━━━━━━━━━━━━━━━

一、程序改错

━━━━━━━━━━━━━━━━━

第1题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:用顺序交换法将12个整数中处于奇数位的数从大到小排序。--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

void main()

/***********FOUND***********/

{ int m[12],i,j;

/***********FOUND***********/

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

cin>>m[i];

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

/***********FOUND***********/

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

/***********FOUND***********/

if(m[i]>m[j])

{ k=m[i];

m[i]=m[j];

m[j]=k;

}

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

cout<

}

答案:

1). {int m[12],i,j,k;

2). for(i=0;i<12;i++) 或for(i=0;i<=11;i++)

3). for(j=i+2;j<11;j+=2) 或for(j=i+2;j<11;j=j+2)

4). if(m[j]>m[i]) 或if(m[i]

第2题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:在一个具有n个数的数组中查找并删除一个数K。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#define n 10

#include

void main()

{

/***********FOUND***********/

int a[n],n,k,i,j;

/***********FOUND***********/

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

cin>>a[i];

cin>>k;

/***********FOUND***********/

for(i=1;i<=n||a[i]!=k;i++);

if(i

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

a[j]=a[j+1];

/***********FOUND***********/

for(i=0;i

cout<

}

else

{ cout<<"not found";

for(i=0;i

cout<

}

}

答案:

1). int a[n],k,i,j;

2). for(i=0;i

3). for(i=0;i

4). for(i=0;i

第3题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:利用插入法将20个数排列成降序,并计算输入序列中第10个数到第20个数的和. --------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

void main( )

{ float s,a[21]={1,3,5,7,9,2,4,6,8,10,13,65,76,34,23,15,64,33,234,66}; /***********FOUND***********/

int i,j;

for(j=2;j<=20;j++)

{ k=j-1;

a[0]=a[j];

/***********FOUND***********/

while(k>=0&&a[k]>a[0] )

{

/***********FOUND***********/

a[k]=a[k+1];

k--;

}

/***********FOUND***********/

a[k]=a[0];

}

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

cout<

s=0.0;

for(j=10;j<=20;j++)

s=s+a[j];

cout<

}

答案:

1). int i,j,k;

2). while(m=0)

3). a[k+1]=a[k];

4). a[k+1]=a[0];

第4题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:将十进制正整数n转化为二进制数输出

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

void main()

{

int m[50],m1[50],n,i,j,n1;

cin>>n;

i=0;

while(n>0)

{

/***********FOUND***********/

n1=n%2;

/***********FOUND***********/

m1[i]=n/2;

/***********FOUND***********/

n1=n;

i++;

}

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

/***********FOUND***********/

m1[i+1-j]=m[j];

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

cout<

}

答案:

1). n1=n/2;

2). m1[i]=n%2;

3). n=n1;

4). m[j] = m1[i-j];

第5题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:判断一个自然数是否为降序数(若D1D2D3……DN满足DI>DI+1,1<=I<=N,则D1D2……DN为降序数,如54321)

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

void main()

{ int m[100],n,i,j;

cin>>n;

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

{

/***********FOUND***********/

m[i]=n/10;

/***********FOUND***********/

n=n%10;

}

/***********FOUND***********/

for(j=0;j

/***********FOUND***********/

if(j<=i)

cout<<"yes";

else

cout<<"no";

}

答案:

1). m[i]=n%10;

2). n=n/10;

3). for(j=0;j

4). if(j==i-1)

第6题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:用二分法在一组按升序的数中找出指定的数K.

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

void main()

{

int a[20],n,find,k,m,i,j;

cin>>n;

for(i=0;i

cin>>a[i];

cin>>k;

find=0;

i=0;j=n-1;

/***********FOUND***********/

while(i<=j&&find=0)

{ m=(i+j)/2;

if(k==a[m])

/***********FOUND***********/

find=0;

/***********FOUND***********/

else

if(k>a[m])

j=m-1;

else

i=m+1;

}

/***********FOUND***********/

if(find=1)

cout<<"found"<

else

cout<<"no found";

}

答案:

1). while(i<=j&&find==0)

2). find=1;

3). else if(k

4). if(find==1)

第7题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:打印扬辉三角形

1

1 1

1 2 1

1 3 3 1

1 3 6 4 1

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

void main()

{ int a[5][5],i,j;

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

{

/***********FOUND***********/

a[i][1]=1;

a[i][i]=1;

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

/***********FOUND***********/

a[i][j]=a[i-1][j-1]+a[i][j];

}

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

{

/***********FOUND***********/

for(j=0;j<5;j++)

/***********FOUND***********/

cout<

cout<

}

}

答案:

1). a[i][0]=1;

2). a[i][j]=a[i-1][j-1]+a[i-1][j];

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

4). cout<

第8题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:用”筛选法”判断并输出1-100之间的素数.

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

void main()

{

int a[101],i,j;

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

a[i]=1;

a[1]=0;

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

{

/***********FOUND***********/

j=1;

while (i*j<=100)

{

/***********FOUND***********/

a[i][j]=0;

j++;

}

}

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

/***********FOUND***********/

if(a[i] =1)

/***********FOUND***********/

cout<

}

答案:

1). j=2;

2). a[i*j]=0; 或a[j*i]=0;

3). if(a[i]==1) 或if(a[i])

4). cout<

第9题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:下面函数chnum将一个整数字符串转换为一个整数。--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

#include

int chnum (char *str)

{

int i,j,k,h,len,L,num=0;

/***********FOUND***********/

int L=n=strlen(str);

/***********FOUND***********/

for(i=0;i

{

k=1;

j=len=len-1;

cout<

while (j>0)

{

k=k*10;

/***********FOUND***********/

j++;

}

/***********FOUND***********/

h=*(str+4-len)-'0';

num=num+h*k;

}

return num;

}

{ int t;char *a="1234";

t=chnum(a);

cout<

}

答案:

1). L=len=strlen(str);

2). for(i=0;i

3). j--; 或--j; 或j=j-1; 或j-=1;

4). h=*(str+i)-'0';

第10题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:将1到255之间的任意一个十进制转换成二进制.

-------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

void main()

{ int a[8],k,m,n,i;

/***********FOUND***********/

cin<

k=0;

while(n!=0)

{

m=n/2;

a[k]=n%2;

/***********FOUND***********/

k--;

/***********FOUND***********/

m = n;

}

/***********FOUND***********/

for(i=k;i>=1;i++)

cout<

}

答案:

1). cin>>n;

2). k++;

4). for(i=k-1;i>=0;i--)

第11题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:打印出1000以内的同时满足如下条件的数

个位数字与十位数字之和除以10所得的余数等于百位数字

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

#include

void main()

{

/***********FOUND***********/

int a,b,c,d,i,j;

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

/***********FOUND***********/

{ for (j=2;flag=1;j<=sqrt(i)&&flag;j++)

/***********FOUND***********/

if(i%j==1) flag=0;

/***********FOUND***********/

if(flag==0)

{ a=i/100;

b=(i-a*100)/10;

c=i-a*100-b*10;

d=b+c-(c+b)/10*10;

if (d==a)

cout<

}

}

}

答案:

1). int a,b,c,d,i,j,flag;

2). { for (j=2,flag=1;j<=sqrt(i)&&flag;j++)

3). if(i%j==0) flag=0; 或if(!i%j==0) flag=0;

4). if(flag==1) 或if(flag) 或if(flag !=0)

第12题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:统计100-300之间同时被3,7整除的数的个数,输出这些数的个数及它们的平方和434385.

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

void main()

{ float ns;

/***********FOUND***********/

int k;

n=0;

/***********FOUND***********/

ns=1;

for(k=100;k<=300;k++)

{

/***********FOUND***********/

n37=7%k+3%k;

/***********FOUND***********/

if(n37=0)

{ n++;

ns=ns+k*k;

}

}

cout<

}

答案:

1). int n37,k,n;

2). ns=0;

3). n37=k%7+k%3;

4). if(n37==0)

第13题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:在[100,5000]之间打印出各位数字和为5的所有整数的个数.

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

void main()

{

int a,b,c,d,k,i;

k=0;

for(i=104;i<=500;i++)

{

/***********FOUND***********/

a=i%100;

b=(i-a*100)/10;

c=i-a*100-b*10;

}

/***********FOUND***********/

if(a+b+c<>5) k++;

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

{ a=i/1000;

b=(i-a*1000)/100;

/***********FOUND***********/

c=(i-A*1000-b*100)/100;

d=i-a*1000-b*100-c*10;

/***********FOUND***********/

if(a+b+c==5) k++;

}

cout<

}

答案:

1). a=i/100;

2). if(a+b+c==5) k++;

3). c=(i-a*1000-b*100)/10;

4). if(a+b+c+d==5) k++;

第14题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目: 下列程序是求某班级的最高成绩、最低成绩和平均成绩的程序,输入-1表示结束。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

void main()

{ float cj,sum,max,min,ave;

int n;

/***********FOUND***********/

n=0

cin>>cj;

/***********FOUND***********/

sum=0;

/***********FOUND***********/

min=max=0;

cin>>cj;

/***********FOUND***********/

while(cj!=0)

{ n++;

sum+=cj;

if(cj>max) max=cj;

if(cj

cin>>cj;

}

ave=sum/n;

cout<

}

答案:

1). n=1;

2). sum=cj;

3). min=max=cj;

4). while(cj>=0)

第15题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:计算T=1-1/2+2/3-3/4+……-29/30

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

void main()

/***********FOUND***********/

{ int t1,f,k; float t=1;

/***********FOUND***********/

f=1;

/***********FOUND***********/

for(k=1;k<=30;k++)

{

/***********FOUND***********/

t1=(k-1)/k;

t+=t1*f;

f=-f;

}

cout<

}

答案:

1). { int f,k;float t1,t=1;

2). f=-1;

3). for(k=2;k<=30;k++)

4). t1=(float)(k-1)/k; 或t1=(k-1)/(float)k; 或t1=1.0*(k-1)/k;

第16题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:计算输出100-200之间素数的平方根之和

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

#include

void main()

{

float s,sn;

int n,k,l;

s=0;

/***********FOUND***********/

for(n=100;n<=199;n+=2)

{ sn=sqrt(n);

/***********FOUND***********/

l=0;

/***********FOUND***********/

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

if(n%k==0)l=0;

/***********FOUND***********/

if(l==0)

s+=sn;

}

cout<

}

答案:

1). for(n=101;n<=199;n+=2) 或for(n=100;n<=199;n+=1) 或for(n=100;n<=200;n+=1) 或for(n=101;n<=200;n+=2)

2). l=1

3). for(k=2;k

4). if(l!=0)

第17题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:计算并输出100—200之间的所有素数的平方根之和.

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

#include

void main( )

{ float s,sn;

int n,k,f,m;

s=0.0;

for(n=101;n<=199;n+=2)

{ sn=sqrt(n);

m=sn;

k=3;

f=0;

/***********FOUND***********/

while(k<=m&&f=0)

{

/***********FOUND***********/

if(n%k==0) f=0;

/***********FOUND***********/

m++;

}

/***********FOUND***********/

if (f) s=s+sn;

}

cout<

}

答案:

1). while(k<=m&&f==0)

2). if(n%k==0) f=1;

3). k++;

4). if (!f) s=s+sn;} 或if (f==0) s=s+sn;}

第18题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目: 一个数列的头三个数是0,0,1,第四个数是前三个数之和, 以后每个都是前三个数之和,问当该数列中的某个数值达

到10的15次方,它是该数列的第几项?

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

void main()

/***********FOUND***********/

{float i,j,k,l,n;

i=j=0;

n=3;

while(k<1e15)

{n++;

l=i+j+k;

/***********FOUND***********/

j = i;

/***********FOUND***********/

k = j;

/***********FOUND***********/

l=k;

}

cout<

}

答案:

1). {double i,j,k,l,n;

2). i=j;

3). j=k;

4). k=l;

第19题

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:类B是类A的友元类,程序的运行结果为:

20

10

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/

#include

#include

class A

{

private:

int x;

public:

A(int a){x=a;}

/***********FOUND***********/

class B;

/***********FOUND***********/

friend B

{

private:

int x;

public:

B(int a){x=a;}

/***********FOUND***********/

void set(A &aa){x=A.x;}

int get(){return x;}

};

void main()

{

A a(10);

B b(20);

cout<

b.set(a);

/***********FOUND***********/

cout<

}

答案:

1). friend class B;

2). class B

3). void set(A &aa){x=aa.x;}

4). cout<

━━━━━━━━━━━━━━━━━

二、程序设计

━━━━━━━━━━━━━━━━━

第1题

/*------------------------------------------------

【程序设计】

--------------------------------------------------

输入一组非0整数(以输入0作为输入结束标志)到一维数组中,设计一程序,求出这一组数的平均数,并分别统计出这一组数中正数和负数的个数。

--------------------------------------------------

注意:程序编写在下面的Promgram和End区域。

------------------------------------------------*/

/**********Program**********/

#include

void main()

{

int a[100],b[100],c[100];

int max2,max1,j=0,k=0,t;

float avg,s=0;

cout<<"请输入一组整数(o结束):";

int i=0;

do{

cin>>a[i];

s+=a[i];

i++;

}while(a[i-1]);

t=i-1;

cout<<"共输入"<

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

if(a[i]>0)j++;

else if(a[i]<0) k++;

avg=s/t;

cout<<"这组数的平均值为"<

cout<<"其中输入的正整数个数为:"<

cout<<"其中输入的负整数个数为:"<

}

/********** End **********/

第2题

/*------------------------------------------------

【程序设计】

--------------------------------------------------

用cin.getline()将一个字符串出入到字符数组中,按反序输出。例如:输入"Abcd e",则输出"e dcbA"。

--------------------------------------------------

注意:程序编写在下面的Promgram和End区域。

------------------------------------------------*/

/**********Program**********/

#include

void main()

{

char s[30];

cout<<"请输入字符串:";

cin.getline(s,30);

int i=0;

while(s[i++]!='\0');

i-=2;

cout<<"反序后为:";

for(;i>=0;i--)

cout<

cout<

}

/********** End **********/

第3题

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:从键盘输入一组整数,以999结束。

要求:1. 写一符号函数实现判断一个整数的符号,正数返回1;负数返回-1;0返回0。

2. 在主函数中调用符号函数,统计正负数及0的个数,并输出。

------------------------------------------------*/

第4题输

/*------------------------------------------------

【程序设计】

--------------------------------------------------

用cin.getline()将一个字符串输入到字符数组S(char S[200])中,

删除字符串中的所有空格后输出。

--------------------------------------------------

注意:程序编写在下面的Promgram和End区域。

------------------------------------------------*/

/**********Program**********/

#include

#include

void main(){

char s[200],t[200];

int i=0,j=0;

cout<<"请输入字符串(回车结束):";

cin.getline(s,200);

cout<<"s="<

for(;i

if(s[i]!=' '&&i

t[j]='\0';

cout<<"t="<

}

C语言程序的设计填空题及答案复习用

导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++) s=s+ ①; return( ② ); } 【3.3】下面的程序的功能是求一维数组中的最小元素。findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;pamax) amax=x; if( ② ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 【3.7】下面程序的功能是将形参x的值转换为二进制数, 所得的二进制数放在一个一维数组中返回,二进制数的 最低位放在下标为0的元素中。 fun(int x,int b[]) { int k=0,r; do { r=x% ①; b[k++]=r; x/= ②; }while(x); } 【3.8】下面程序的功能是输出1到100之间每位数的乘 积大于每位数的和的数。例如数字26,数位上数字的乘 积12大于数字之和8。 main() { int n,k=1,s=0,m; for(n=1;n<=100;n++) { k=1; s=0; ①; while( ② ) 页脚

100道填空题及参考答案

100道填空题参考答案(*号的不作要求) 一、数制和码制 1、十进制数254.75的二进制编码.11 ,十六进制编码7F.C 。 2、将(459)10编成(1)8421BCD, ( 0 )余3码 3、下列数中,哪个数最大 B (A、B、C、D)。 A、二进制111 B、八进制110 C、十进制101 D、十六进制100 4、下列哪个数是合法的8进制数 B (A、B、C、D)。 A、128 B、120 C、912 D、1A2 5、已知[N]补=,则其[N]原= 。 5-1、余3码对应的2421码为 C 。 A. B. C. D. 5-2、在计算机中进行加减运算时常采用 D 。 A ASCII B 原码 C 反码 D 补码 5-3、二进制小数-0.0110的补码表示为 1.1010 。 5-4、0的原码有 2 形式,反码有 2 形式,补码有 1 形式。 二、门电路 6、CMOS电路不用的输入端不能(能、不能)悬空。 7、CMOS“与非”门用的多余输入端的处理方法有: A 。 A、接逻辑“1” B、接逻辑“0” C、悬空 8、CMOS门电路的功耗比TTL门电路的功耗小(大、小)。 9、TTL门电路的速度比CMOS门电路速度高(高、低)。 10、与普通门电路不同,OC门在工作时需要外接上拉电阻和电源。

11、OC 门的输出端相连可以实现线与。 12、有两个TTL与非门,它们的关门电平分别为V offA=1.1V,V OFFB=0.9V;开门 电平分别为V onA=1.3V,V onB=1.7V。它们输出的高低电平均相同, A (A、B)门的抗干扰能力强。 13、一片与非门芯片具有三个三输入端与非门,该芯片引脚数至少要14 。 (14、16、18、20)。 14、三态门除了具有高电平和低电平两种状态外,还有第三种状态叫高阻状 态。 15、三极管作为开关器件“非门”时,不能工作在放大状态。三极管非门 输入低电平时,三极管工作在截止状态。 16、将2输入端与非门当作非门使用时,则另一输入端接 1 (0,1);将2 输入端或非门当作非门使用时,则另一输入端接0 (0,1)。 17、74LS00是TTL电路(TTL电路、CMOS电路)。 18、TTL门电路主要外部特性参数有标称电平、开门电平、关门电平延时、 功耗、扇入系数、噪声容限等等。 *19、NMOS门电路如图19所示,输入变量为A、B,输出函数L= 。 图19 20、一片芯片具有四个两输入端或非门,该芯片引脚数至少有14 (14、16、 18、20)。 21、74LS00和74HC00芯片,74LS00 芯片速度更快。

C语言题库(填空题部分)

二、填空题 1、C语言中对文件读写之前必须先打开文件,文件的打开是通过调用________函数来实现。 答案: 1:fopen#fopen()#fopen() 知识点:知识点/基本理论/C11文件/C11_2文件函数 2、C语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用__________函数来实现。 答案: 1:fclose#fclose()#fclose() 知识点:知识点/基本理论/C11文件/C11_2文件函数 3、字符串函数________用于从指定的磁盘文件中读出一个字符串。 答案: 1:fgets#fgets() 知识点:知识点/基本理论/C11文件/C11_2文件函数 4、字符串函数___________用于把一个字符串写入指定的磁盘文件中。 答案: 1:fputs#fputs() 知识点:知识点/基本理论/C11文件/C11_2文件函数 5、字符读写函数____________是用于从磁盘文件中读出一个字符。 答案: 1:fgetc#fgetc()#getc#getc() 知识点:知识点/基本理论/C11文件/C11_2文件函数 6、字符读写函数____________是用于把一个字符写入磁盘文件。 答案: 1:fputc#fputc()#putc#putc() 知识点:知识点/基本理论/C11文件/C11_2文件函数 7、共用体类型变量的定义关键字是________。 答案: 1:union 知识点:知识点/基本理论/C10共用体与枚举类型 8、定义枚举类型时采用的关键字是__________。 答案: 1:enum 知识点:知识点/基本理论/C10共用体与枚举类型 9、在C语言中,从参数的形式看,函数可以分为两类:无参函数和____________函数。 答案: 1:有参 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 10、在C语言中,函数的返回值是由___________语句传递的。 答案: 1:return#return() 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 11、在C语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数 __________。 答案: 1:参数 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 12、在C语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。 答案: 1:直接 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 13、在C语言中,若确实不要求返回函数值,则应将函数定义为___________类型。 答案: 1:void 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 14、在C语言中,假使X为基本整型变量,如果我们采用printf("格式控制",X)格式输出X,那么"格式控制"具体表示为"__"。

c语言程序填空题

导出题库试题(1~100) 共计104道试题 一、程序填空答案(104题) 【程序填空】 1功能:求两个非负整数的最大公约数和最小公倍数。 【1】r != 0 或r 【2】r=m%n 或r=m-m/n*n 【3】n 【4】gcd,lcm 或n,lcm 2功能:下面的程序是求1!+3!+5!+……+n!的和。 【1】s=0 【2】i+=2 或i=i+2 或i++,i++ 【3】j<=i 或i>=j 或jj 【4】f= f * j 3功能:将一个字符串中下标为m的字符开始的全部字符复制成为另 一个字符串。 【1】p1= str1 + m 【2】*p2++=*p1++ 或*(p2++)=*(p1++) 或*p2=*p1,p2++,p1++ 或*p2=*p1++,p2++ 或*p2++=*p1,p1++ 【3】*p2='\0' 或*p2=0 或*p2=NULL【4】strcopy(str1,str2,m) 4功能:以下程序是用选择法对10个整数按升序排序。 【1】#define N 10 【2】k=I 【3】jj 或j<=N-1 或N-1>=j【4】k != i 5功能:删除一个字符串中的所有数字字符。 【1】s[i]!= 或*(s+i)!= 或*(i+s)!= 【2】|| 【3】s[j]=s[i] 或*(s+j)=*(s+i) 或s[j]=*(s+i) 或*(s+j)=s[i] 【4】delnum(item) 6功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出 其和。 【1】n=0 【2】i<=300 或i<300 或300>=i 或300>i 【3】i%7 == 0 || i%17 == 0 或!(i%7)||!(i%17) 或!(i%17)||!(i%7) 或!(i%7&&i%17) 【4】n%5 == 0 或!(n%5) 或n/5*5==n 7功能:求100-999之间的水仙花数 说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。 例如:153=1^3+5^3+3^3)。 【1】k=0 【2】j=m%10 或j=m-m/10*10 或j=m-10*(m/10) 【3】return(1) 【4】fun(i) 8功能:输出9*9口诀。 【1】i<10 或10>i 【2】j++ 或++j 或j=j+1 【3】result 9功能:输出100到1000之间的各位数字之和能被15整除的所有数, 输出时每10个一行。 【1】k=0 【2】n%10 或n-n/10*10 或n-10*(n/10) 【3】while(n>0) 或while(0

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

填空题及答案

填空题及答案 (请将答案填写在横线上) 1.数50.681710x =?的近似值*50.6810x =?的有效位数是 , 绝对误差限为 。 2.数51051187.0?=x 的近似值5 *10512.0?=x 的有效位数是 ,绝对误差限为 。 3.设 * 3.3149541x =,取5位有效数字,则所得的近似值x=____ 。 4. 14159.3=π,具有4位有效数字的近似值为 。 5.根据数值计算原则,对充分大的数x ,为了 ,计算1x x -+的值时,应将其变形为 。 6.数值求积公式8 ()()b k k a k f x dx A f x =≈∑?是插值型求积公式的充分必要条件是其具有至少 代数精度; 若该公式为高斯公式,则其代数精度为 。 7.设132 1A -??=? ?-?? ,则 = =∞ 1 , A A 。 8.设122322541A --?? ??=-?? ??--??,则=1A ,=∞A 。 9.设211122135A -?? ??=-????-?? ,则=1A ,=∞A 。 10.设???? ??????=231221112A ,则=1A ,=∞A 。 11.=-=]1,0[),5()(22f x x x f 则一阶差商 ,=]3,2,1,0[f 则三阶差商 。 12.已知1)(2-=x x f ,则差商=]3,2,1[f 。 13.已知1)(2 -=x x f ,则差商=]2,1,0[f 。 14.为了满足精度为4 10-的要求,用复合梯形公式计算积分dx x ? 7 1 1 时,步长应取 。 15.Euler 法的公式为 。 16.方程cos 3y x y '=-的Euler 公式为 。 17.方程sin x y e x y '=-的Euler 公式为 。 18.方程2in y s x y '=-的隐式Euler 公式为 。 19.改进的欧拉法的公式为 。 20假设矩阵100040009A ?? ?= ? ??? ,则该矩阵的Cholesky 分解A=LL T 分解中的 下三角矩阵L 等于 。 21已知方程013 =--x x 在区间[0,1]内有且只有一个实根,现给定精度62-,则至少

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

C语言程序填空题及答案

C语言程序填空题及答 案 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

程序填空题 1、 #include void main() { int n,k=0; scanf("%d",&n); while( _____1_____ ) // 1)n 2) n!=0; { k++; _____2_____; n=n/10 } printf("%d\n",k); } 2、 #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; ______1______ // max=f(1); for(x=2;x<=10;x++) ______2______ // if(f(i)>max) max=f(i); printf("%f\n",max);

} 3、 #include void main() { char c; c=getchar(); if(______1______) // c>='a' && c<'v' c=c+5; else if (c>='v' && c<='z') ______2______ //c=c-21; putchar(c); } 4、 #include void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= ______1______; // m%2

1_填空题库及参考答案

填空题库及参考答案 第1章绪论 1-1、测量工作的基准线是铅垂线。 1-2、测量工作的基准面是水准面。 1-3、测量计算的基准面是参考椭球面。 1-4、水准面是处处与铅垂线垂直的连续封闭曲面。 1-5、通过平均海水面的水准面称为大地水准面。 1-6、地球的平均曲率半径为6371km。 1-7、在高斯平面直角坐标系中,中央子午线的投影为坐标x轴。 1-8、地面某点的经度为131°58′,该点所在统一6°带的中央子午线经度是129°。 1-9、为了使高斯平面直角坐标系的y坐标恒大于零,将x轴自中央子午线西移500km。 1-10、天文经纬度的基准是大地水准面,大地经纬度的基准是参考椭球面。 1-11、我国境内某点的高斯横坐标Y=22365759.13m,则该点坐标为高斯投影统一6°带坐标,带号为22 ,中央子午线经度为129°,横坐标的实际值为-134240.87m,该点位于其投影带的中央子午线以西。 1-12、地面点至大地水准面的垂直距离为该点的绝对高程,而至某假定水准面的垂直距离为它的相对高程。 第2章水准测量 2-1、高程测量按采用的仪器和方法分为水准测量、三角高程测量和气压高程测量三种。 2-2、水准仪主要由基座、水准器、望远镜组成。 2-3、水准仪的圆水准器轴应与竖轴平行。 2-4、水准仪的操作步骤为粗平、照准标尺、精平、读数。 2-5、水准仪上圆水准器的作用是使竖轴铅垂,管水准器的作用是使望远镜视准轴水平。 2-6、望远镜产生视差的原因是物像没有准确成在十字丝分划板上。 2-7、水准测量中,转点TP的作用是传递高程。 2-8、某站水准测量时,由A点向B点进行测量,测得AB两点之间的高差为0.506m,且B点水准尺的读数为2.376m,则A点水准尺的读数为2.882 m。 2-9、三等水准测量采用“后—前—前—后”的观测顺序可以削弱仪器下沉的影响。 2-10、水准测量测站检核可以采用变动仪器高或双面尺法测量两次高差。 2-11、三、四等水准测量使用的双面尺的一面为黑色分划,另一面为红色分划,同一把尺的红黑面分划相差一个常数,其中A尺的红黑面分划常数为4687,B尺的红黑面分划常数为4787。 2-12、水准测量中,调节圆水准气泡居中的目的是竖轴铅垂,调节管水准气泡居中的目的是使视准轴水平。 第3章角度测量 3-1、经纬仪主要由基座、水平度盘、照准部组成。 3-2、经纬仪的主要轴线有竖轴VV、横轴HH、视准轴CC、照准部管水准器轴LL、圆水准器轴L’L’。 3-3、经纬仪的视准轴应垂直于横轴。 3-4、测量的角度包括水平角和竖直角。 3-5、用光学经纬仪观测竖直角、在读取竖盘读数之前,应调节竖盘指标微动螺旋,使竖盘指标管水准气泡居中,其目的是使竖盘指标处于正确位置。 3-6、用测回法对某一角度观测4测回,第3测回零方向的水平度盘读数应配置为90°左右。 3-7、设在测站点的东南西北分别有A、B、C、D四个标志,用方向观测法观测水平角,以B为零方向,则盘左的观测顺序为B—C—D—A—B。 3-8、由于照准部旋转中心与水平度盘分划中心不重合之差称为照准部偏心差。 3-9、用经纬仪盘左、盘右两个盘位观测水平角,取其观测结果的平均值,可以消除视准轴误差、横轴误差、照准部偏心误差对水平角的影响。 3-10、用测回法对某一角度观测6测回,则第4测回零方向的水平度盘应配置为90°左右。 第4章距离测量 4-1、距离测量方法有钢尺量距、视距测量、电磁波测距、GPS测量。 4-2、钢尺量距时,如定线不准,则所量结果总是偏大。 4-3、钢尺量距方法有平量法与斜量法。 4-4、标准北方向的种类有真北方向、磁北方向、坐标北方向。 4-5、经纬仪与水准仪十字丝分划板上丝和下丝的作用是测量视距。 4-6、用钢尺在平坦地面上丈量AB、CD两段距离,AB往测为476.4m,返测为476.3m;CD往测为126.33m,返测为126.3m,则AB比CD丈量精度要高。 4-7、陀螺经纬仪可以测量真北方向。 4-8、罗盘经纬仪可以测量磁北方向。 4-9、地球自转带给陀螺转轴的进动力矩,与陀螺所处空间的地理位置有关,在赤道为最大,在南、北两极为零。因此,在纬度≥75°的高纬度地区(含南、北两极),陀螺仪不能定向。 第5章全站仪及其使用 5-1、全站仪测量的基本量为水平角、竖直角、斜距。 5-2、全站仪的三轴是指视准轴、测距发射光轴、测距接收光轴。 5-3、水准仪、经纬仪或全站仪的圆水准器轴与管水准器轴的几何关系为相互垂直。 5-4、单轴补偿器只能补偿全站仪竖轴倾斜在视准轴方向的分量对竖直角的影响,其功能等价于竖盘自动归零补偿器。 5-5、双轴补偿器能补偿全站仪竖轴倾斜在视准轴方向的分量对竖直角的影响,在横轴方向的分量对水平角的影响。

2011__C语言上机填空题

1 给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:S r π=2,在程序中定义的变量名要与公式的变量相同)。 例如,输入圆的半径值:19.527,输出为:s=598.949991。 2 请补充main 函数,该函数的功能是:计算两个自然数n 和m(m<10000)之间所有数的和(n 和m 从键盘输入)。 例如,当n=1,m=100时 ,sum=5050; 当 n=100,m=1000 时,sum=495550。 3 给定程序的功能是:判断字符ch 是否与串str 中的某个字符相同,若相同什么也不做,若不同则插在串的最后。 4 请补充函数fun,该函数的功能是:把ASCII 码为偶数的字符从字符串str 中删除,结果仍然保存在字符串str 中,字符串str 从键盘输入,其长度作为参数传入函数fun 。 例如,输入"abcdef",输出"ace"。 5 请补充函数fun,该函数的功能是:判断某一个年份是否为闰年。 例如,1900年不是闰年,2004是闰年。 6 请补充函数fun,函数fun 的功能是求n 的阶乘。 7 请补充函数fun,该函数的功能是:整除x 且是偶数的数,把这些数保存在数组bb 中,并按从大到小的顺序输出。 例如当x=20时,依次输出:20 10 4 2。 8 请补充函数fun,它的功能是:计算并输出n(包括n)以内所有能被3或7整除的自然数的倒数之和。 例如,在主函数中从键盘给n 输入30后,输出为:s=1.226323。 9 请补充main 函数,该函数的功能是:计算每个学生成绩的平均分,并把结果保存在数组 bb 中 。 例 如 ,当 score[N][M]={{83.5,82,86,65,67},{80, 91.5 ,84,99,95},{90.5,95,86,95,97}}时,三个学生的平均分为76.7,89.9,92.7。 10 请补充函数fun(char*s),该函数的功能是:把字符串中的内容逆置。 例如,字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba 。 11 请补充main 函数,该函数的功能是:输出一个N N ?矩阵,要求非周边元素赋值0,周边元素赋值1。 12 请补充main 函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。结果仍然保存在原串中。 例如,输入"abcdef",指定字符为"e",则输出"abcd"。 13 请补充main 函数,该函数的功能是:从键盘输入3个整数,然后找出最大的数并输出。 例如,输入12,45,43,最大值为45。 14 函数fun 的功能是:从三个形参a 、b 、c 中找出中间的数,作为函数值返回。 例如,当a=3,b=5,c=4时,中间的数为4。 15 函数fun 的功能是:统计长整数n 的各位上出现数字1、2、3的次数,并用外部(全局)变量c1、c2、c3返回主函数。 例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。 16 请补充main 函数,该函数的功能是:打印出1 1000中满足个位数字的立方等于其本身所有数。 本题的结果为:1 64 125 216 729 17 请补充main 函数,该函数的功能是:打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位数。 本题的结果为: 111 222 333 444 555 666 777 888 999。 18 请补充main 函数。该函数的功能是:求1 100(不包括100)以内所有素数的平均值。 程序运行后的结果为42.40。 19 请补充函数fun,该函数的功能是:求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。 例如,当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},结果为:avg=15.030000。 20 请补充函数fun,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组str 中。例如,当 n=13572468 时,str="86427531"。 21 请补充函数fun,该函数的功能是:将字符串tt 中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入"Are you come from Sichuan?",则输出"are you come from sichuan?"。 22 请补充main 函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-3847652,结果为:3847652。 23 请补充main 函数,该函数的功能是:从键 盘输入若干字符放到一个字符数组中,当按回车键时结束输入,最后输出这个字符数组中的所有字符。 24 请补充main 函数,该函数的功能是求方程ax 2+bx+c=0的两个实数根。方程的系数a 、b 、c 从键盘输入,如果判别式(disc=b 2-4ac)小于0,则要求重新输入a 、b 、c 的值。 例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00,x2=-1.00。 25 请补充main 函数,该函数的功能是:从键盘输入两个字符串并分别保存在字符数组str1和str2中,用字符串str2替换字符串str1前面的所有字符。注意:str2的长度不大于str1,否则需要重新输入。 例如,如果输入str1="abced",str2="fk",则输出"fkced"。 26 给定程序中,函数fun 的功能是:将形参指针所指结构体数组中的三个元素按num 成员进行升序排列。 27 给定程序中,函数fun 的功能是:把形参s 所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动 (注:字符串的长度不小于2)。 例如,形参s 所指的字符串为:abcdefgh,执行结果为:ahcbedgf 。 28 给定程序的功能是:分别统计字符串中大写字母和小写字母的个数。 例如,给字符串ss 输入:AaaaBBbl23CCccccd,则输出结果应为:upper=5,lower=9。 29 请补充main 函数,该函数的功能是:先以只写方式打开文件"out29.dat",再把字符串str 中的字符保存到这个磁盘文件中。 30 请补充main 函数,该函数的功能是:把文本文件B 中的内容追加到文本文件A 的内容之后。 例如,文件B 的内容为"I m ten.",文件A 的内容为"I m a student!",追加之后文件A 的内容为"I m a student ! I m ten."。 31 请补充main 函数,该函数的功能是:求n!。 例如,7!=5040。 32 请补允函数fun,该函数的功能是:计算并输出下列多项式的值。 111 S =1+ + ++ 1+2 1+2+3 1+2+3+ 例如,若主函数从键盘给n 输入50后,则输出为S=1.960784。 33

模块化程序设计练习题及答案

第四章模块化程序设计练习题及参考答案 一、填空题 1、以下程序的运行结果是(111),把x定义为静态变量运行结果是(123)。void increment(void) { int x=0; x+=1; printf("%d",x);} main() { increment(); increment(); increment(); } 2、若输入的值是-125,以下程序的运行结果是(-125=-5*5*5) #include "" main() { int n; void f(int n); scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=fabs(n); fun(n); } void fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf("%d",k); n=n/k; if(n>1)printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 3、设有以下宏定义: #define WIDTH 80 #define LENGTH WIDTH+40 则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880) 4、设有以下宏定义: #define WIDTH 80 #define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400) 5、下面程序的运行结果是(5) #define DOUBLE(r) r*r main() { int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);} 6、下面程序的运行结果是(36) #define MUL(z) (z)*(z) main() { printf("%d\n",MUL(1+2)+3); } 7、下面程序的运行结果是(212) #define POWER(x) ((x)*(x)) main() { int i=1; while(i<=4) printf("%d,",POWER(i++)); } 8、下面程序的运行结果是(9) #define MAX(a,b) (a>ba:b)+1 main() { int i=6,j=8,k; printf("%d\n",MAX(i,j)); } 二、选择题 1、以下正确的说法是(D)建立自定义函数的目的之一是: A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 2、以下正确的说法是(B) A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。 C)系统根本不允许用户重新定义标准库函数。 D)用户若需调用标准函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。 3、以下正确的函数定义形式是(C) A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y) 4、以下正确的说法是(D)。在C语言中: A)实参与其对应的形参各占用独立的存储单元。 B)实参和与其对应的形参共占用一个存储单元。 C)只用当实参和与其对应的形参同名时才共占用存储单元。

120道填空题参考答案 数字逻辑要点

120余道填空题参考答案(*号的不作要求) 一、数制和码制 1.十进制数254.75的二进制编码11111110.11 ,十六进制编码FE.C 。 2. 将(459)10编成(010*********)8421BCD, ( 011110001100 )余3码 3.下列数中,哪个数最大 D (A、B、C、D)。 A、二进制111 B、八进制110 C、十进制101 D、十六进制100 4.下列哪个数是合法的8进制数 B (A、B、C、D)。 A、128 B、120 C、912 D、1A2 5、已知[N]补=10100101,则其[N]原= 11011011 。 5-1、余3码10001000对应的2421码为 C 。 A.01010101 B.10000101 C.10111011 D.11101011 5-2、在计算机中进行加减运算时常采用 D 。 A ASCII B 原码 C 反码 D 补码 5-3、二进制小数-0.0110的补码表示为 1.1010 。 5-4、0的原码有 2 形式,反码有 2 形式,补码有 1 形式。 二、门电路 6、CMOS电路不用的输入端不能(能、不能)悬空。 7、CMOS“与非”门用的多余输入端的处理方法有: A 。 A、接逻辑“1” B、接逻辑“0” C、悬空 8、CMOS门电路的功耗比TTL门电路的功耗小(大、小)。 9、TTL门电路的速度比CMOS门电路速度高(高、低)。 10、与普通门电路不同,OC门在工作时需要外接上拉电阻和电源。

11、OC 门的输出端相连可以实现线与。 *12、有两个TTL与非门,它们的关门电平分别为V offA=1.1V,V OFFB=0.9V;开门电平分别为V onA=1.3V,V onB=1.7V。它们输出的高低电平均相同, A (A、B)门的抗干扰能力强。 13、一片与非门芯片具有三个三输入端与非门,该芯片引脚数至少要14 。 (14、16、18、20)。 14、三态门除了具有高电平和低电平两种状态外,还有第三种状态叫高阻状 态。 15、三极管作为开关器件“非门”时,不能工作在放大状态。 16、将2输入端与非门当作非门使用时,则另一输入端接 1 (0,1);将2 输入端或非门当作非门使用时,则另一输入端接0 (0,1)。 17、74LS00是TTL电路(TTL电路、CMOS电路)。74HC00是CMOS电 路(TTL电路、CMOS电路)。 18、TTL门电路主要外部特性参数有标称电平、开门电平、关门电平延时、 功耗、扇入系数、噪声容限等等。 *19、NMOS门电路如图19所示,输入变量为A、B,输出函数L= 。 图19 20、一片芯片具有四个两输入端或非门,该芯片引脚数至少有14 (14、16、 18、20)。 21、74LS00和74HC00芯片,74LS00 芯片速度更快。

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

-程序填空部分试题及答案

第1.题*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面的程序是求1!+3!+5!+……+n!的和。 -------------------------------------------------------*/ #include main() { long int f,s; int i,j,n; /***********SPACE***********/ 【?】; scanf("%d",&n); /***********SPACE***********/ for(i=1;i<=n; 【?】) { f=1; /***********SPACE***********/ for(j=1; 【?】;j++) /***********SPACE***********/ 【?】; s=s+f; } printf("n=%d,s=%ld\n",n,s); } 第2题./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以下程序是用选择法对10个整数按升序排序。 -------------------------------------------------------*/ #include /***********SPACE***********/ 【?】 main()

网络练习题参考答案

第1章计算机网络的基本概念 一.填空 (1)按照覆盖的地理范围,计算机网络可以分为______、______和______。 【答案】:局域网、城域网、广域网 (2)ISO/OSI参考模型将网络分为______层、______层、______层、______层、______ 层、______层和______层。 【答案】:物理、数据链路、网络、传输、会话、表示、应用 (3)建立计算机网络的主要目的是:________。 【答案】:资源共享和在线通信 二.单项选择 (1)在TCP/IP体系结构中,与OSI参考模型的网络层对应的是: a)主机—网络层 b)互联层c)传输层d)应用层 【答案】:b (2)在OSI参考模型中,保证端-端的可靠性是在哪个层次上完成的? a)数据链路层b)网络层c)传输层d)会话层 【答案】:c 三.问答题 计算机网络为什么采用层次化的体系结构? 【要点提示】采用层次化体系结构的目的是将计算机网络这个庞大的、复杂的问题划分成若干较小的、简单的问题。通过“分而治之”,解决这些较小的、简单的问题,从而解决计算机网络这个大问题(可以举例加以说明)。 第2章局域网的基本知识 一.填空 (1)最基本的网络拓扑结构有三种,他们是________、________和________。 【答案】:总线型、环形、星形 (2)以太网使用________介质访问控制方法,而FDDI则使用________介质访问控制方法。 【答案】:CSMA/CD、令牌环 二.单项选择 (1)MAC地址通常存储在计算机的 a)内存中b)网卡上c)硬盘上d)高速缓冲区 【答案】:b (2)在以太网中,冲突 a)是由于介质访问控制方法的错误使用造成的

相关文档
最新文档