文档库 最新最全的文档下载
当前位置:文档库 › 程序填空练习题(有答案)

程序填空练习题(有答案)

程序填空练习题(有答案)
程序填空练习题(有答案)

【程序填空】

--------------------------------------------------------- 功能:已定义一个含有30个元素的数组s,函数fun1的功能是按顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序

每五个元素求一个平均值, 并将该值存放在数组w中。

-------------------------------------------------------*/ #include

long int s[30];

float w[6];

fun1(long int s[])

{

int k,i;

for(k=2,i=0;i<30;i++)

{

/**********FILL**********/

_____

k+=2;

}

}

fun2(long int s[],float w[])

{

float sum=0.0;

int k,i;

for(k=0,i=0;i<30;i++)

{

sum+=s[i];

/**********FILL**********/

_____

{

w[k]=sum/5;

/**********FILL**********/

_____

k++;

}

}

}

main()

{

int i;

fun1(s);

/**********FILL**********/

_____;

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

{

if(i%5==0) printf("\n");

printf("%8.2f",s[i]);

}

printf("\n");

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

printf("%8.2f",w[i]);

}

参考答案:

S[i]=k;

If((i+1) %5==0)

sum=0.0;

fun2(s,w);

【程序填空】

--------------------------------------------------------- 功能:下面的程序是求1!+3!+5!+……+n!的和。

-------------------------------------------------------*/ #include

main()

{

long int f,s;

int i,j,n;

/**********FILL**********/

_____

scanf("%d",&n);

/**********FILL**********/

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

{

f=1;

/**********FILL**********/

for(j=1; _____;j++)

/**********FILL**********/

_____

s=s+f;

}

printf("n=%d,s=%ld\n",n,s);

}

参考答案:

s=0;

i=i+2

j<=i

f=f*j;

--------------------------------------------------------- 功能:以下程序是用选择法对10个整数按升序排序。

-------------------------------------------------------*/ #include

/**********FILL**********/

_____

main()

{

int i,j,k,t,a[N];

for(i=0;i<=N-1;i++)

scanf("%d",&a[i]);

for(i=0;i

{

/**********FILL**********/

_____

/**********FILL**********/

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

if(a[j]

/**********FILL**********/

if(_____)

{

t=a[i];

a[i]=a[k];

a[k]=t;

}

}

printf("output the sorted array:\n");

for(i=0;i<=N-1;i++)

printf("%5d",a[i]);

printf("\n");

}

参考答案:

#define N 10

k=i;

j<=n-1

i!=k

--------------------------------------------------------- 功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。

-------------------------------------------------------*/ #include

#include

main()

{

int i,n,sum;

sum=0;

/**********FILL**********/

_____

/**********FILL**********/

for(i=1; _____ ;i++)

/**********FILL**********/

if(_____)

if(i%2==0)

{

sum=sum+i;

n++;

printf("%6d",i);

/**********FILL**********/

if(_____)

printf("\n");

}

printf("\ntotal=%d",sum);

}

参考答案:

n=0;

i<=300

i % 7==0 || i % 17==0

n % 5==0

--------------------------------------------------------- 功能:输出由字符w构造成的形如W的图形。

w ww w

w w w w

w w w w

w w w w

ww ww

-------------------------------------------------------*/ #include

void draw(int n)

{

int i,j,k,r,m;

/**********FILL**********/

for(i=1; _____ ;i++)

{

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

{

for(r=1;r

printf("w");

/**********FILL**********/

for(k=1; _____ ;k++)printf(" ");

printf("w");

for(m=1;m

}

/**********FILL**********/

_____

}

}

#include

main()

{

int n;

printf("input a number:");

/**********FILL**********/

_____

draw(n);

}

参考答案:

i<=n

k<=2*n-2*i

printf("\n");

scanf("%d",&n);

【程序填空】

--------------------------------------------------------- 功能:求100-999之间的水仙花数

说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。例如:153=1^3+5^3+3^3)。

-------------------------------------------------------*/ #include

int fun(int n)

{ int i,j,k,m;

m=n;

/**********FILL**********/

_____

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

{

/**********FILL**********/

_____

m=(m-j)/10;

k=k+j*j*j;

}

if(k==n)

/**********FILL**********/

_____

else

return(0);}

main()

{

int i;

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

/**********FILL**********/

if(_____==1)

printf("%d is ok!\n" ,i);

}

参考答案:

k=0;

j=m%10;

return 1;

fun(i)

【程序填空】

--------------------------------------------------------- 功能:产生并输出如下形式的方阵。

1 2 2 2 2 2 1

3 1 2 2 2 1 4

3 3 1 2 1

4 4

3 3 3 1

4 4 4

3 3 1 5 1

4 4

3 1 5 5 5 1 4

1 5 5 5 5 5 1

-------------------------------------------------------*/ #include

main()

{

int a[7][7];

int i,j;

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

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

{

/**********FILL**********/

if (_____) a[i][j]=1;

/**********FILL**********/

else if (i

else if (i>j&&i+j<6) a[i][j]=3;

/**********FILL**********/

else if (_____) a[i][j]=4;

else a[i][j]=5;

}

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

{

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

printf("%4d",a[i][j]);

/**********FILL**********/

_____

} }

参考答案:

i==j|| i+j==6

a[i][j]=2

i6

printf(“\n”);

--------------------------------------------------------- 功能:产生并输出杨辉三角的前七行。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

-------------------------------------------------------*/ #include

main ( )

{

int a[7][7];

int i,j;

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

{

a[i][0]=1;

/**********FILL**********/

_____

}

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

/**********FILL**********/

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

/**********FILL**********/

a[i][j]= _____;

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

{

/**********FILL**********/

for (j=0; _____;j++)

printf("%6d",a[i][j]);

printf("\n");

}

}

参考答案:

A[i][i]=1

i

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

j <= i

--------------------------------------------------------- 功能:输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。

-------------------------------------------------------*/ #include

main()

{

int m,n,k,i=0;

for(m=100;m<=1000;m++)

{

/**********FILL**********/

_____

n=m;

do

{

/**********FILL**********/

k=k+_____ ;

n=n/10;

}

/**********FILL**********/

_____;

if (k%15==0)

{

printf("%5d",m);i++;

/**********FILL**********/

if(i%10==0) _____;

}

}

}

参考答案:

k=0

n%10

while(n!=0)

printf(“\n”);

--------------------------------------------------------- 功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。

-------------------------------------------------------*/ #include

main()

{

int x,i=0,j=0;

float s1=0,s2=0,av1,av2;

scanf("%d",&x);

/**********FILL**********/

while(_____)

{

if(x%2==0)

{

s1=s1+x;

i++;

}

/**********FILL**********/

_____

{

s2=s2+x;

j++;

}

/**********FILL**********/

_____

}

if(i!=0)

av1=s1/i;

else

av1=0;

if(j!=0)

/**********FILL**********/

_____

else

av2=0;

printf("oushujunzhi:%7.2f,jishujunzhi:%7.2f\n",av1,av2); }

参考答案:

x!=0

else

scanf("%d",&x);

av2=s2/j;

【程序填空】

--------------------------------------------------------- 功能:产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。

-------------------------------------------------------*/ #include

main()

{

/**********FILL**********/

_____

int i,j,k;

int a[10];

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

a[i]=random(61)+30;

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

{

/**********FILL**********/

_____

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

/**********FILL**********/

if(_____) k=j;

if(k!=i)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

/**********FILL**********/

for(_____)

printf("%5d",a[i]);

printf("\n");

}

参考答案:

int n;

k=i

a[j]

i=0;i<10;i++

【程序填空】

--------------------------------------------------------- 功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。

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

#include

main()

{

char str[80],ch;

int i,k=0;

/**********FILL**********/

gets(_____);

ch=getchar();

/**********FILL**********/

for(i=0;_____;i++)

if(str[i]!=ch)

{

/**********FILL**********/

_____

k++;

}

/**********FILL**********/

_____

puts(str);

}

参考答案:

str

str[i]!=’\0’

str[k]= str[i]

str[k]= ’\0’;

【程序填空】

--------------------------------------------------------- 功能:将一个数组中的元素按逆序存放。

-------------------------------------------------------*/ #include

#define N 7

main ()

{

static int a[N]={12,9,16,5,7,2,1},k,s;

printf("\n the origanal array:\n");

for (k=0;k

printf("%4d",a[k]);

/**********FILL**********/

for (k=0;k

{

s=a[k];

/**********FILL**********/

_____

/**********FILL**********/

_____

}

printf("\n the changed array:\n");

for (k=0;k

/**********FILL**********/

_____ ("%4d",a[k]);

}

参考答案:

k++

a[k]= a[6-k];

a[6-k]=s;

printf

【程序填空】

--------------------------------------------------------- 功能:是将两个字符串连接为一个字符串,不许使用库函数strcat。-------------------------------------------------------*/ #include

#include "string.h"

JOIN(s1,s2)

char s1[80],s2[40];

{

int i,j;

/**********FILL**********/

_____

/**********FILL**********/

for (i=0; _____;i++)

s1[i+j]=s2[i];

/**********FILL**********/

s1[i+j]= _____;

}

main ( )

{

char str1[80],str2[40];

gets(str1);gets(str2);

puts(str1);puts(str2);

/**********FILL**********/

_____

puts(str1);

}

参考答案:

j=strlen(s1);

s2[i]!='\0'

'\0'

JOIN(str1, str2)

【程序填空】

--------------------------------------------------------- 功能:求两个非负整数的最大公约数和最小公倍数。

-------------------------------------------------------*/ #include

main()

{

int m,n,r,p,gcd,lcm;

scanf("%d%d",&m,&n);

if(m

p=m*n;

r=m%n;

/**********FILL**********/

while(_____)

{

/**********FILL**********/

m=n;n=r; _____;

}

/**********FILL**********/

gcd=_____;

lcm=p/gcd;

/**********FILL**********/

printf("gcd=%d,lcm=%d\n", _____);

}

参考答案:

r!=0

r=m%n;

n

gcd, lcm

【程序填空】

--------------------------------------------------------- 功能:将一个字符串中的前N个字符复制到一个字符数组中去,不许使用strcpy函数。

-------------------------------------------------------*/ #include

main ( )

{

char str1[80],str2[80];

int i,n;

/**********FILL**********/

gets(_____);

scanf("%d",&n);

/**********FILL**********/

for (i=0; _____ ;i++)

/**********FILL**********/

_____

/**********FILL**********/

_____

printf("%s\n",str2);

}

参考答案:

str1

i

str2[i]=str1[i]

str2[i]=’\0’

【程序填空】

--------------------------------------------------------- 功能:打印以下图形。

*****

*****

*****

*****

*****

-------------------------------------------------------*/ #include

main ( )

{

char a[5][9]={" "};

int i,j;

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

/**********FILL**********/

for(j=i; _____;j++)

a[i][j]='*';

/**********FILL**********/

for(_____;i<5;i++)

{

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

/**********FILL**********/

printf("%c", _____);

/**********FILL**********/

_____

}

}

参考答案:

j

i=0

a[i][j]

printf("\n");

【程序填空】

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

功能:以下程序的功能是通过公式求的近似值:

...

7

1

-

5

1

3

1

-1

π/4+

+

直到最后一项的绝对值小于

10-6为止。

-------------------------------------------------------*/ #include

#include

main()

{

int f;

/**********FILL**********/

_____

double t,pi;

t=1;pi=t;f=1;n=1.0;

/**********FILL**********/ while(_____)

{

n=n+2;

/**********FILL**********/ _____

t=f/n;

pi=pi+t;

}

/**********FILL**********/ _____

printf("pi=%10.6f\n",pi); }

参考答案:

double n;

fabs(t)>=1e-6

f=-f;

pi= pi*4;

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( ② ) 页脚

程序阅读及填空(答案)

一.程序阅读题 1.若运行时输入100↙,写出以下程序的运行结果。main ( ) { int a ; scanf(“%d”,&a); printf(“%s”,(a%2!=0)?”No”:”Yes”); } 答案: Yes 2.写出以下程序的运行结果。 main ( ) { int a=2,b=7,c=5; switch (a>0) { case 1: switch (b<0) { case 1: printf(“”); break ; case 2: printf(“!”); break ; } case 0: switch (c==5) { case 1: pritnf(“*”) ; break ; case 2: printf(“#”) ; break ; default : printf(“#”) ; break ; } default : p rintf(“&”); } printf(“\n”); } 答案: *& 3.写出下面程序运行的结果。 main ( ) { int i,b,k=0 ; for (i=1; i<=5 ; i++) { b=i%2; while (b--==0) k++ ; } printf(“%d,%d”,k,b); } 答案:2 0 4.写出下面程序运行的结果。 main ( ) { int k=1,n=263 ; do { k*= n%10 ; n/=10 ; } while (n) ; printf(“%d\n”,k); } 答案:36 5.写出下面程序运行的结果。

{ int a=10,y=0 ; do { a+=2 ; y+=a ; if (y>50) break ; } while (a=14) ; printf(“a=%d y=%d\n”,a,y) ; } 答案:a=16 y=60 数组部分: 1.写出下面程序的运行结果。 main ( ) 答案: { int a[6][6],i,j ; for (i=1; i<6 ; i++) for (j=1 ; j<6 ; j++) a[i][j]=(i/j)*(j/i) ; for (i=1;i<6 ; i++) { for (j=1 ; j<6 ; j++) printf(“%2d”,a[i][j]) ; printf(“\n”); } } 2.写出下面程序的运行结果。 main ( ) { int i=0; char a[ ]=”abm”, b[ ]=”aqid”, c[10]; while (a[i]!=’\0’ && b[i]!=’\0’) { if (a[i]>=b[i]) c[i]=a[i]-32 ; else c[i]=b[i]-32 ; i++; } c[i]=’\0’; puts(c); } 答案:AQM 3.当运行下面程序时,从键盘上输入AabD↙,则写出下面程序的运行结果。 main ( ) { char s[80]; int i=0; gets(s); while (s[i]!=’\0’) { if (s[i]<=’z’ && s[i]>=’a’) s[i]=’z’+’a’-s[i] ; i++;

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

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、以下程序的运行结果是(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)只用当实参和与其对应的形参同名时才共占用存储单元。

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

第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()

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.

C++程序设计练习题与答案

C++程序设计练习题 一、填空题 1.对象的三大基本特性分别为多态性、( )、封装性。 2.赋值运算符应重载为( )函数。 3.用( )声明的基类称为虚基类。 4.用( )声明的函数称为虚函数。 5.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的( )。 6.静态成员是对象的成员,( )函数不是类的成员。 7.在函数体之前加( )关键字可以防止覆盖函数改变数据成员的值。 8.一个const对象只能访问( )成员函数。 9.使用友元函数是为了提高程序效率,且节约了( )开销。 10.类名为“ClassName”的类,其拷贝构造函数的原型说明是( )。 11.由关键字private、public和protected限定成员的访问权限分别是( )、( )和( )。缺省关键字时成员的访问权限为( )。 12.如果想要公共基类在派生类中只有一个拷贝,就要将公共的基类说明为( );如果虚基类没有默认构造函数,就必须在每一个派生类的构造函数中都要调用虚基类的( )函数。 13.静态成员函数是使用关键字( )说明的成员函数。 14.一个函数的原型声明为“void FunName(int=0, double=0, char='x');”,则调用FunName函数的方法共有( )种。 15.编译时多态性是通过( )实现的;运行时多态性是通过( )实现的。 16.C++通过( )实现编译时多态性,通过( )实现运行时多态性。 17.在C++中,声明类的关键字是( )。 18.声明C++模板的关键字是( )。 19.调用函数原型声明为“void FunName(short, int=0, float=1.0);”的方法有( )种。 20.处理C++异常的方法:采用( )结构。 21.用关键字( )、( )和( )限定的成员,其访问权限分别为:公有的、私有的和保护的。缺省关键字时,成员的访问权限为( )。 22.在C++中,处理( )的方法是采用try-catch结构。 23.在C++中,用关键字( )说明内置函数。 24.在C++中,声明友元函数的关键字是( )。 25.将公共基类说明为( )时,多重派生过程中公共基类在派生类中就只有一个拷贝了。 26.在C++中,如果函数调用在前、定义在后,就必须先对函数进行( )。 27.在成员函数头之后、函数体之前加( )修饰的成员函数称为类的常成员函数。 28.包含纯虚函数的类称为抽象类,这种类只能用作( )来派生新类。由于抽象类的特殊性,我们可以说明抽象类的( ),但不能说明抽象类的( )。 29.说明函数类型为“double”、函数名为“virfun”且无参数的纯虚函数的表达形式为( )。 30.说明静态成员要使用关键字( )。 31.当函数调用在前定义在后时,必须先对函数进行( )说明。

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

程序填空题

1.下列程序由键盘输入一个文件名,然后把从键盘输入的字符依次存放到磁盘文件中,直到输入一个"#"为止。 #include "stdio.h" main( ) { FILE *fp; char ch,filename[10]; scanf("%s",filename); /*用户输入存在磁盘上的文件名*/ if((fp= ⑦(filename,"w"))==NULL) { printf("cannot open file\n"); exit(0); } while((ch=getchar())!='#') ⑧; fclose(fp); } 2.下列程序的功能是输出一个整数x的绝对值。将程序补充完整,填在空内。 #include main() { int x, ①; scanf("%d",&x); y= ②; printf("%d\n",y); } 3.下列程序的功能是输出1~100之间能被7整除的所有整数。将程序补充完整,填在空内。 main() { int i; for(i=1; ③;i++) { if(i%7) ④; printf("%d ",i); } } 4.以下程序用以删除字符串中所有的空格,请填空。 main() { char s[100]={"Our teacher teach C language!"}; int i,j; for(i=j=0;s[i]!= '\0';i++) if(s[i]!= ' ') { ⑤;j++;} s[j]= ⑥; printf("%s\n",s); } 5.结构体数组中存有三个人的姓名和年龄,以下函数fun的功能是输出三人中最年长者的姓名和年龄。 struct man

循环程序设计习题及答案

模块三循环程序设计习题及答案 一、填空题 1、当在数据处理中要重复执行相同的操作时,宜采用程序结构来实现。 2、循环的3要素是、、。 3、在循环语句体中包含另一个循环语句的用法称为。 4、执行循环语句体中的break语句后将使用包含它的循环语句。 5、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行语句。 6、在for语句中表达式允许省略,但不能少,语句for( ; ;) ;构成的是循环。 7、在for语句中,省略表达式2时,则循环为循环。 8、执行语句for(i=1;i++<4; );后变量i的值是。 9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用语句。 10、在每次循环周期均要执行一次的语句,称为。 11、for语句括号内的3个表达式的作用分别是、和循环控制变量的更新。 二、选择题 1、若k为整形变量,则while循环共循环()。 k=5; while(k>=0) k-1; A、无限循环 B、6次 C、5次 D、4次 2、与while( ! n) ; 中表达式!dn等价的是()。 A、dn>=0 B 、dn!=0 C、dn == 0 D、dn != 1 3、以下程序段,while循环执行的次数是() int k=0;

while( k == 1) k++; A、无限次 B、有语法错,不能执行 C、一次也不执行 D、执行1次 4、在C语言中,当do while语句中的条件为()时,结束该循环。 A、0 B、1 C、TRUE D、非0 5、下面程序段的输出结果是() do { b-=a; a++; }while(b--<0); A、10,-1 B、2,8 C、9,0 D、4,-3 6、以下描述正确的是() A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do while循环体中,一定要有能使while后面匠值变为零的操作 D、do while循环中,根据情况可以省略while 7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。 s=c; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是() A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c; 8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是() A、d=a+b; B、d=a+c; C、d=a-b; D、d=a-c 9、下列关于for循环的说法正确的是() A、for循环只能用于循环次数已经确定的情况

c语言程序填空(含答案)

【程序填空】 功能:写一个函数,求一个字符串的长度,在main函数中输入字 符串,并输出其长度。 len=length(str ...); I.nt length ........(p) N.++..; P.++..; 【程序改错】 功能:将一个字符串中的大写字母转换成小写字母。 bool (char) ......fun(char *c) fun= c;(return *c) .......... puts(*p);(putchar(*p)) ............. 【程序设计】 功能:编写函数实现两个数据的交换,在主函数中输入任 意三个数据,调用函数对这三个数据从大到小排序。 ------------------------------------------------*/ #include void wwjt(); void swap(int *a,int *b) { /**********Program**********/ /********** End **********/ } main() { int x,y,z; scanf("%d%d%d",&x,&y,&z); if(xn2 .....)

C语言程序填空题-20分

二、程序填空题(每空2分,共20分) 1.下列程序是求100之内的能被7整除的自然数之和。请在横线处填入适当的语句,将程序补充完整。 #include void main( ) { int sum; _(1) _; for(int i=1;__(2) _; i++) if(_(3) _) sum+=i; cout< void main( ) { int n,x; cin>>x>>n; double y=1; for(int i=1;__(1) _; i++) _(2) _; cout< void main() {

int i,j; for(i=0; (1) ;i++) { j=i*10+6; if( (2) ) continue; else cout< #include void main() { int i,j,k ; for(i=1 ;i<=4 ;i++) { for(j=1;j<20-3*i; (1) ) cout<<”“; for(k=1; (2) ; k++) cout<

湖南省计算机二级3[1].(6分)程序阅读填空

程序填空题一 1. 下面C语言程序将两个递增有序的数值a和b 合并一个数组c,并保持递增次序,最后输出数组c. #include < stodio.h> #define M6 #define N5 main( ) {int a[M]={1,3,5,7,9,11} b[N]={2,4,6,8,10} int c[M+N] int i ,j, k; i=j=k=0 while( 1 ) if a[i]

printf(%dxt,c[k]; ) 其中(1)(2)(3)(4)处分别填一数据,使程序达到其功能。 答案: 1:i

解:(1)(*f)(x+y)/(*g)(y-x) (2)cos,sin,a,b [解析]本题考察的是函数的声明。要填写的两个空都出现在return语句中,所以要仔细分析函数的返回值。本题的第二个空相对要容易一些,只要根据题干和乘号前面的调用语句对比一下即可得到调用语句的四个参数。第一个空相对要难一些,函数fgh定义时用到了函数指针(*f)和(*g)是为了增加函数的灵活性。根据函数h的定义以及题干要求,可以看出函数fgh应该表示的是乘号两边的某一项。(*f)和(*g)用来表示sin或cos,参数x 和y的加减法运算作为sin或cos函数的参数,故应填写(*f)(x+y)/ (*g)(y-x)。

C语言程序填空题及答案

程序填空题 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 m=m/2; } for(;j!=0;j--) printf("%d", ______2______ ); // bin[j-1] } void main() { int n; scanf("%d",&n); Dec2Bin(n); } 5、 #include #include void main() { int n,s=0; scanf("%d",&n); ______ 1 ______ //n=(n>0?n:-n) ; 2)n=fabs(n); while(n!=0) { ______ 2 ______ // s=s+n%10; n=n/10; } printf("%d\n",s); } 6、 /#include void swap(______1______) //int *pa , int *pb { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb;

大学计算机C语言程序设计(填空题)

一、填空共219题 第1题题号:422 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【1】 . Struct stud { char num[6]; int s[4]; double ave; } a,*p; 答案: 1). 22 第2题题号:533 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y); 答案: 1). 3 第3题题号:496 静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是 在【2】时进行的. 答案: 1). 编译 2). 函数调用 第4题题号:96 已知a=13,b=6, a&b的十进制数值为【1】. 答案: 1). 4 第5题题号:398

程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案: 1). 0 第6题题号:651 设w=5;w+= -2;则w的值为【1】. 答案: 1). 3 第7题题号:258 下面程序段的输出结果是【1】. int a=12; a=a&0377;pritnf("%d\n",a); 答案: 1). 12 第8题题号:457 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是【1】. 答案: 1). 1 第9题题号:402 设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的 二进制数是【1】. 答案: 1). 11110000 第10题题号:311 若所用变量均已正确定义,则执行下面程序段后的值是【1】. for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案: 1). YESYES

相关文档