安瑞范文网

C语言程序设计期末试题附答案3篇(完整)

|来源:网友投稿

C语言程序设计期末试题附答案1  1若a、b均为int型变量,且a=100,则以下的for循环是死循环.  for(b=100;a!=b;++a,b++)printf(----\n);  执行语下面是小编为大家整理的C语言程序设计期末试题附答案3篇(完整),供大家参考。

C语言程序设计期末试题附答案3篇(完整)

C语言程序设计期末试题附答案1

  1若a、b均为int型变量,且a=100,则以下的for循环是死循环.

  for (b=100;a!=b;++a,b++) printf("----\n");

  执行语句:for(i=1;i++<4;++i);后;变量i的值是5。

  2以下程序的运行结果是【 】

  main()

  {int x,y,z;

  x=1;y=2;z=3;

  x=y--<=x||x+y!=z;

  printf("%d,%d",x,y);

  }

  3以下程序的运行结果是【 】

  main()

  {int x,y,z;

  x=1;y=1;z=0;

  x=x||y&&z;

  printf("%d,%d",x,x&&!y||z);

  }

  4以下程序的运行结果是【 】

  main()

  {int a,b,c;

  int s,w=0,t;

  a=-1;b=3;c=3;

  if(c>0)s=a+b;

  if(a<=0)

  {if(b>0)

  if(c<=0)w=a-b;

  }

  else if(c>0)w=a-b;

  else t=c;

  printf("%d,%d,%d\n",s,w,t);

  }

  5阅读下面程序:

  main()

  { int s, t, a, b;

  scanf("%d%d",&a, &b);

  s=1;

  t=1;

  if(a>0) s=s+1;

  if(a>b) t=s+t;

  else if (a==b) t=5;

  else t=2*s;

  printf("s=%d, t=%d", s, t);

  }

  6为了使输出结果t=4, 输入量a和b应满足的条件是【 】

  7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。

  #include main()

  { int a,max=0;

  scanf("%d",&a)

  while(【 】){ if (max

  scanf("%d",&a);

  }

  printf("%d",max);

  }

  8执行下面的程序段后,k值是【 】。

  k=1; n=263;

  do { k*=n%10; n/=10; } while(n);

  9等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。

  #include

  main()

  { int a,d,sum;

  a=2;d=3;sum=0;

  do

  { sum+=a;

  a+=d;

  if (【 】) printf("%d\n",sum);

  } while(sum<200);

  }

  10鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。

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

  { y=30-x;

  if (【 】) printf("%d,%d\n",x,y);

  }

  11写出下面程序的运算结果【 】。

  # include

  main ( )

  { int a=14, b=63;

  while (a!=b)

  {while (a>b) a-=b;

  while (a

  }

  printf ("%d\n",a);

  }

  12下列程序的输出为【 】。

  #include

  main()

  {

  int i,j,x=0;

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

  { if(i%3==2) break;

  x++;

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

  { if(j%2) break;

  x++;

  }

  x++;

  }

  printf("x=%d\n",x);

  }


C语言程序设计期末试题附答案3篇扩展阅读


C语言程序设计期末试题附答案3篇(扩展1)

——C语言程序设计期末试题及答案3篇

C语言程序设计期末试题及答案1

  1.以下程序输出结果是( )

  main()

  { int m=5;

  if(m++>5) printf("%d\n",m);

  else printf("%d\n",m--);

  A)7 B)6 C)5 D)4

  2以下程序的输出结果为( )

  # include

  main ( )

  { int i=0, j=0, a=6;

  if ((++i>0)&&(++j>0)) a++;

  printf ("i=%d, j=%d, a=%d\n", i,j,a);}

  A) i=0, j=0, a=6 B) i=1, j=1, a=7

  C) i=1, j=0, a=7 D) i=0, j=1, a=7

  3有如下程序

  main()

  { int a=2,b=-1,c=2;

  if(a

  if(b<0) c=0;

  else c++;

  printf("%d\n",c);

  }

  该程序的输出结果是( )

  A) 0 B) 1 C) 2 D) 3

  4若i为int型,且有程序如下,则输出结果是( )

  i=111;

  if(i%3==0)

  printf("####");

  printf("****");

  A) #### B) **** C) ####**** D) 无输出结果

  5若运行时x=12,则运行结果为( )

  {int x, y;

  scanf("%d", &x);

  y=x>12 ? x+10:x-12;

  printf("%d\n", y);}

  A) 0 B) 22 C) 12 D) 10

  6以下程序的输出结果是( )

  main()

  { int i=0, j=0, k=6;

  if ((++i>0)||(++j>0)) k++;

  printf("%d, %d, %d\n", i, j, k);

  }

  A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7

  7若变量都已正确说明,则以下程序段输出为( )

  int a=1,b=2,c=3;

  if(a>b)

  a=b;

  b=c;

  c=a;

  printf("a=%d b=%d c=%d\n",a,b,c);

  A)a=1 b=2 c=1 B)a=1 b=2 c=3

  C)a=1 b=3 c=1 D)a=2 b=3 c=2

  8当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )

  if(a

  if(c

  else

  if(a

  if(b

  else x=3;

  else x=6;

  else x=7;

  A) 1 B)2 C)3 D)6

  9以下不正确的语句为( )

  A)if(x>y);

  B)if(x==y)&&(x!=0)x+=y;

  C)if(x!=y)scanf("%d",&x);else scanf("%d",&y);

  D)if(x

  10有以下程序:

  #include"stdio.h"

  main( )

  {char i;

  for (; (i=getchar ())!="\n";)

  {switch (i-"a")

  {case 0: putchar (i);

  case 1: putchar (i+1);break;

  case 2: putchar (i+2);

  case 3: break;

  default: putchar (i);break;

  }

  }

  printf ("\n");

  }

  输入下列数据后,程序的输出结果是( )

  abcde

  A) abcde B) abcee

  C) abbde D) abccdd

  11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( )

  A) switch(a+b); B) switch(a*a+b*b)

  { case 1:y=a+b; break; {case 3:

  case 0:y=a-b; break; case 1:y=a+b;break;

  } case 3:y=b-a,break;

  }

  C) switch a D) switch(a-b)

  { case 1 :y=a-b; break {

  case 2: x=a*d; break case c1:case 4:x=a+b;break;

  default:x=a+b; case c2:case 11:y=a-b;break;

  } default:y=a*b;break;

  }

  12写出下面程序输出结果( )

  {int x=1, y=0, a=0, b=0;

  switch(x)

  {case 1:

  switch(y)

  {case 0: a++;

  case 1: b++; }

  case 2: a++; b++;

  }

  printf("a=%d, b=%d\n", a, b) ;

  }

  A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2

  13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式

  均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。

  A) < B) ++ C) ; D) ,

  14下面有关for循环的正确描述是( )。

  A) for循环只能用于循环次数已经确定的情况

  B) for循环是先执行循环体语句,后判定表达式

  C) 在for循环中,不能用break语句跳出循环体

  D) for循环体语句中,可以包含多条语句,但要用花括号括起来

  15以下程序段( )。

  x=-1;

  do

  { x=x*x;}

  while(!x)

  A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误

  16如下的数组中,数组array占用的内存空间是( )个字节。

  char array[]={"c","h","i","n","a"};

  A. 1 B. 5 C. 6 D. 不确定

  17设有程序段

  int k=10;

  while(k=0) k=k-1;

  则下面描述正确的是( )。

  A) while 循环执行10次 B) 循环是无限循环

  C) 循环体语句一次也不执行 D) 循环体语句执行一次

  18下列程序段的运行结果是( )

  int n=0;

  while(n++<3);

  printf("%d",n)

  A. 2 B. 3 C. 4 D. 以上都不对

  19设有程序段

  t=0;

  while(printf("*"));

  { t++;

  if (t<3) break;

  }

  下面描述正确的是( )。

  A) 其中循环控制表达式与0等价 B) 其中循环控制表达式与"0"等价

  C) 其中循环控制表达式是不合法的 D) 以上说法都不对

  20下面程序的运行结果是( )。

  #include

  main()

  { int y=10;

  do { y--;} while(--y);

  printf("%d\n",y--);

  }

  A) -1 B) 1 C) 8 D) 0

  21以下程序段的输出结果是( ).

  main()

  { int i=5;

  for ( ;i<=15; )

  { i++;

  if (i%4==0) printf("%d ",i);

  else continue;}

  }

  A. 8 12 16 B. 8 12 C. 12 16 D. 8

  22以下不是无限循环的语句为( )。

  A) for(y=0,x=1;x>++y;x=i++) i=x;

  B) for( ; ;x++=i);

  C) while(1){x++;}

  D) for(i=10; ; i--) sum+=i;

  23有如下语句

  int x=3;

  do

  { printf("%d\n",x-=2);} while(!(--x));

  则上面程序段( )

  A. 输出的是1 B. 输出的是1和-2

  C. 输出的是3和0 D. 是死循环

  24以下不是无限循环的是( )

  A. for(y=0,x=1;x>++y;x=i++) i=x;

  B. for( ; ;x++=i);

  C. while(1) x++;

  D. for(i=10; ;i--) s+=i;

  25以下正确的描述是( )。

  A) continue语句的作用是结束整个循环的执行

  B) 只能在循环体内和switch语句内使用break语句

  C) 在循环体内使用break语句或continue语句的作用相同

  D) 从多层循环嵌套中退出时,只能使用goto语句

  26以下程序输出结果为( )

  #include "stdio.h"

  main()

  {int i,b,k=0;

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

  { b=i%2;

  while (b-->=0) k++;}

  printf("%d,%d\n",k,b);

  }

  A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2

  27以下程序段中循环体总的执行次数是( )

  int i,j;

  for(i=7;i;i--)

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

  {......}

  A) 42 B) 21 C) 13 D) 36

  28以下不正确的描述是( )

  A. break 语句不能用于循环语句和switch语句外的任何其他语句

  B. 在switch语句中使用break语句或continue语句的作用相同

  C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行

  D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

  1else语句总是和靠它最近的if匹配。

  2switch语句中一定有default分支

  3case后只能跟常量,不能跟变量

  4break语句的作用就是结束本层循环。

  5do-while语句构成的循环不能用其它语句构成的循环来代替。

  6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。

  7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。

  8for循环中,如果表达式2为空,则该循环一定是死循环。

  9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。

  10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。

C语言程序设计期末试题及答案2

  1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)

  A.switch(x)

  {

  case 1.0: printf("* ");

  case 2.0 printf("** ");

  }

  B.switch((int)x)

  {

  case 1.0: printf("* ");

  case 2.0 printf("** ");

  }

  C.switch(a+b)

  {

  case 1: printf("* ");

  case 2+1: printf("** ");

  }

  D.switch(a+b)

  {

  case 1: printf("* ")

  case c: printf("** ");

  }

  标准答案:C

  2. 若有宏定义如下:

  #define X 5

  #define Y X+1

  #define Z Y*X/2

  则执行以下printf语句后,输出的结果是( )

  int a; a=Y;

  printf("%d ",Z);

  printf("%d",--a); (2分)

  A.7,6 B.12,6 C.12,5 D.7,5

  标准答案:D

  3. 下面的符号常量定义中,正确的是 ( ) (2分)

  A.#define PI 3.14; B.#include PI 3.14;

  C.#define PI=3.14 D.#define PI 3.14

  标准答案:D

  4. 以下程序的输出结果是( )

  int a, b;

  void fun()

  { a=100; b=200; }

  main()

  { int a=5, b=7;

  fun();

  printf("%d%d ", a,b);

  } (2分)

  A.100200 B.57 C.200100 D.75

  标准答案:D

  5. 若有以下调用语句,则不正确的fun函数的首部是( )

  main()

  { …

  int a[50],n;

  …

  fun(n, &a[9]);

  …

  } (2分)

  A.void fun(int m, int x[])

  B.void fun(int s, int h[41])

  C.void fun(int p, int *s)

  D.void fun(int n, int a)

  标准答案:D

  6. 以下程序的输出结果是( )

  fun(int x, int y, int z)

  { z=x*x+y*y; }

  main()

  { int a=31;

  fun(5,2,a);

  printf("%d",a);

  } (2分)

  A.0 B.29 C.31 D.无定值

  标准答案:C

  7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分)

  A.auto和static B.auto和register

  C.register和static D.extern和register

  标准答案:B

  8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)

  A.地址传递

  B.单向值传递

  C.由实参传给形参,再由形参传回实参

  D.传递方式由用户指定

  标准答案:B

  9. 以下函数值的类型是( )

  fun ( float x )

  { float y;

  y= 3*x-4;

  return y;

  } (2分)

  A.int B.不确定 C.void D.float

  标准答案:A

  10. C语言规定函数的返回值的类型是由( ) (2分)

  A.return语句中表达式类型决定

  B.调用该函数时的主调函数类型决定

  C.调用该函数时系统临时决定

  D.在定义该函数时所指定的函数类型决定

  标准答案:D


C语言程序设计期末试题附答案3篇(扩展2)

——C语言程序设计试题附答案3篇

C语言程序设计试题附答案1

  1. 用C语言编写的代码程序( B )

  A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行

  2. C语言中用于结构化程序设计的三种基本结构是( A )

  A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue

  3. 以下定义语句中正确的是( C )

  A)char a="A"b="B"; B float a=b=10.0;C)int a=10,*b=&a; D)float *a,b=&a;

  4.下列选项中,不能用作标识符的是( D )

  A)_1234_ B)_1_2 C) int_2_ D)2_int_

  5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )

  A)称为函数的直接递归调用 B)称为函数的间接递归调用

  C)称为函数的循环调用 D)C语言中不允许这样的递归调用

  6.以下叙述中正确的是 ( A )

  A)局部变量说明为static存储类,其生存期将得到延长

  B)全局变量说明为static存储类,其作用域将被扩大

  C)任何存储类的变量在未赋初值时,其值都是不确定的

  D)形参可以使用的存储类说明符与局部变量完全相同

  7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)

  A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;}

  C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5);

  8.有以下程序(a)

  main()

  { char a="a",b;

  printf("%c,",++a);

  printf("%c\n",b=a++);}

  程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c

  9.有以下函数定义:(c)

  void fun(int n, double x) { …… }

  若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是

  A) fun(int y,double m); B)k=fun(10,12.5) C)fun(x,n); D)void fun(n,x)

  10.已定义c为字符型变量,则下列语句中正确的是(c)

  A)c="97"; B)c="97"; C)c=97; D)c="a";

  11.以下能正确定义一维数组的选项是(a)

  A)int num[]; B) #define N 100

  C)int num[0..100]; D) int N=100;

  int num[N]; int num[N];

  12.以下能正确定义数组并正确赋初值的语句是(d)

  A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}};

  13.有以下程序(a)

  main()

  { int i;

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

  switch (i)

  { case 1: printf("%d ", i);

  case 2: printf("%d ", i);

  default : printf("%d ", i); }

  }

  执行后输出结果是

  A)011122 B)012 C)012020 D)120

  14.有以下程序(d)

  main()

  { int p[7]={11,13,14,15,16,17,18}, i=0,k=0;

  while(i<7 && p[i]%2) { k =k+ p[i]; i++; }

  printf("%d\n", k);

  }

  执行后输出结果是

  A)58 B)56 C)45 D)24

  15.以下叙述中正确的是(c)

  A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行

  C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

  D)C语言出现的最晚,具有其他语言的一切优点

  16.下列叙述中正确的是(d)

  A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型

  C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型

  17.以下叙述中正确的是(a)

  A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符

  C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分

  二、填空题

  1.以下程序输入3个整数值给a,b,c,变量b中的值给a,变量c中的.值给b,变量a中的值给c,交换后输出a,b,c的值。

  #include

  main()

  { int a,b,c,__①_d___;

  printf("enter a,b,c");scanf("%d%d%d",&a,&b,&c);

  ___d=a_②____;__a=b_③_____;____b=c④_____;_c=d__⑤_____;

  printf("%d,%d,%d",a,b,c);

  }

  2.求出200以内的整数中,最大的可以被17整除的数是哪个数。

  #include

  ___①main()____

  {int i;

  for(_i=200___②____;___③i>=0_______;i--)

  {if(____i%17==0____④________) break;}

  printf("%d\n",__⑤_i____);

  }

  3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

  main()

  { int i,a[20],sum,count;

  sum=count=0;

  for(i=0;i<20;i++) scanf("%d", __①_a[i]__ );

  for(i=0;__ ②_i<20_;i++)

  ? { if(a[i]>0)

  ?? { count++;

  ?? sum+= _a[i]__③___ ;

  ?? }

  ? }

  printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);

  }

  4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。请填空。

  int fun( int n)

  { int m=0,i;

  for(i=__1_①___; i<=n; _i++_②____)

  {

  m=_m+i__③____;

  }

  return _④__m__;

  }

  main()

  { printf("m=%d\n", __⑤__ fun(10)_); }

  5.以下程序将数组中的数据按逆序存放。

  #include

  #define SIZE 12

  main()

  {int a[SIZE],i,j,t;

  for(i=0;i

  i=0;j=_SIZE_②____;

  while(i

  {t=a[i];__a[i]=a[j]____ ③______;__a[j]=t___④________;i++;j_--__⑤_____}

  for(i=0;i

  printf("\n");


C语言程序设计期末试题附答案3篇(扩展3)

——C语言程序设计模拟试题附答案3篇

C语言程序设计模拟试题附答案1

  一、单项选择题(20分,每题2分)

  1.程序段

  int *p,a;

  p=&a;

  a=10;

  printf("%d",p);

  的输出应为:

  A)10 B)0 C)不能确定 D)语法错误

  2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:

  A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

  3.以下语句或语句组中,能正确进行字符串赋值的是。

  A)char *sp;*sp="right!"; B)char s[10];s="right!";

  C)char s[10];*s="right!"; D)char *sp="right!";

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

  if(i〈=5) break;

  则循环结束后i的值为

  A)0 B)1 C)5 D)10

  5.有以下程序

  main()

  {

  int m,n,p;

  scanf("m=%dn=%dp=%d",&m,&n,&p);

  printf("%d%d%dn",m,n,p);

  }

  若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是。

  A)m=123n=456p=789 B) m=123 n=456 p=789

  C)m=123,n=456,p=789 D)123 456 789

  6.C语言中,最基本的数据类型包括:

  A)整型、实型、逻辑型 B)整型、字符型、数组

  C)整型、实型、字符型 D)整型、实型、结构体

  7.以下说法正确的是

  A) C程序总是从第一个定义的函数开始执行

  B) 在C程序中,要调用的函数必须在main()函数中定义

  C) C程序总是从main()函数开始执行

  D) C程序的main()函数必须放在程序的开始部分

  8.程序段

  int *p, a=1;

  p=&a;

  *p=10;

  a的值为:

  A) 1 B) 10 C) 不能确定 D) 11

  9.以下定义语句中,错误的是

  A) int a[]={1,2}; B) char *a[3];

  C) char s[10]="test"; D) int n=5,a[n];

  10.假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是

  A) 3 B) 6 C) 10 D) 20

  二、填空题(30分,每空2分)

  1.已知字符A的ACSII码值为65,以下语句的输出结果是 (1) 。

  char ch=’B’;

  printf("%c %d\n",ch,ch);

  2.’a’在内存中占 (2) 个字节,”a”在内存中占 (3) 个字节。

  3.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 (4) 。

  4.有以下程序,执行后输出结果是 (5) 。

  main( )

  {

  int t=1,i=5;

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

  printf("%dn",t);

  }

  5.在循环语句中,break语句的作用是 (6) ,continue语句的作用是 (7) 。

  6.下面程序段将字符数组b连接到数组a的后面。

  main()

  {

  char a[20]= ."I am ";

  char b[]= ."a student.";

  int i, j;

  i = strlen(a);

  for(j =__(8)___; b[j]!=""; j++)

  {

  a[__(9)__] = b[__(10)__];

  }

  a[___(11)__] = ___(12)___ ;

  }

  7.for(表达式1;表达式2;表达式3)

  语句组

  的执行顺序是先求解表达式1、再___(13)______、如果成立则执行___(14)____、然后___(15)______。

  三、写出程序的运行结果(30分,每题10分)

  1.写出程序运行后的输出结果。

  int f(int b[][4])

  {

  int i,j,s=0;

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

  {

  i=j;

  if(i>2)

  i=3-j;

  s+=b[i][j];

  }

  return s;

  }

  main( )

  {

  int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

  printf("%d\n",f(a));

  }

  2.写出程序运行后的输出结果

  #include

  main()

  {

  float x=2,y;

  if(x<0)

  y=0;

  else if(x<10)

  y=1/x;

  else

  y=1;

  printf(“%fn”,y);

  }

  3.(1)函数sub()的功能是什么?(2)写出程序运行的输出结果。

  long sub(int num)

  {

  int i;

  long subsum=1;

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

  subsum*=i;

  return(subsum);

  }

  main()

  {

  int i;

  long sum=0;

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

  {

  sum+=sub(i);

  printf("sum%1d=%ldn",i,sum);

  }

  }

  四、编程(完形填空)(20分,每题10分)

  1.写一个函数,实现将一个长度≤80的"字符串按逆序存放。解题要求:该函数的唯一形参是字符串的起始地址。

  void convert(char string[])

  {

  int length,mid,i;

  char temp;

  length=____(1)____(string);

  mid=____(2)_____;

  for(____(3)____;i

  {

  temp=____(4)_____;

  string[i]=string[____(5)_____];

  string[(length-1)-i]=temp;

  }

  }

  2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。

  main()

  {

  int yy,mm,day;

  scanf(“%d%d”,&yy,&mm);

  switch(__(6)___)

  {

  case1:

  case3:

  case5:

  case7:

  case8:

  case10:

  case12: day=__(7)___;

  break;

  case4:

  case6:

  case9:

  case11: day=__(8)___;

  break;

  case2: if(((yy%4==0)_(9)_(yy%100!=0)) (10)_(yy%400==0))

  day=29;

  else

  day=28;

  break;

  }

  }

  }


C语言程序设计期末试题附答案3篇(扩展4)

——C语言程序设计方风波著课后习题答案下载3篇

C语言程序设计方风波著课后习题答案下载1

点击此处下载☞☞☞C语言程序设计(方风波著)课后答案☜☜☜


C语言程序设计期末试题附答案3篇(扩展5)

——C语言程序设计试卷及答案3篇

C语言程序设计试卷及答案1

  一、单项选择题(20分,每题2分)

  1.若整型变量a、b、c、d中的值依次为:1、4、 3、2。则条件表达式(a

  A)1 B)2 C)3 D)0

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

  if(i〈=5) break;

  则循环结束后i的值为

  A)0 B)1 C)5 D)10

  3.下面正确的字符常量是:

  A)“c” B)‘\\’’ C)‘W’ D)‘’

  4.C语言中,运算对象必须是整型的运算符是:

  A)% B)/ C)* D)+

  5.数字字符0的ASCII值为48,若有以下程序

  main()

  {

  char a="1", b="2";

  printf("%c,",b++);

  printf("%dn",b-a);

  }

  程序运行后的输出结果是。

  A) 3,2 B)50,2 C)2,2 D)2,50

  6.以下选项中不能作为合法常量的是。

  A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0

  7.以下说法正确的是

  A)C程序总是从第一个定义的函数开始执行

  B)在C程序中,要调用的函数必须在main()函数中定义

  C)C程序总是从main()函数开始执行

  D)C程序的main()函数必须放在程序的开始部分

  8.若有说明:char c=‘\72’;则变量c:

  A)包含一个字符 B)包含2个字符

  C)包含3个字符 D)说 明不合法,c的值不确定

  9.以下说法正确的是

  A)C程序总是从第一个定义的函数开始执行

  B)在C程序中, 要调用的函数必须在main()函数中定义

  C)C程序总是从main()函数开始执行

  D)C程序的main()函 数必须放在程序的`开始部分

  10.int *p1,*p2,a[10];

  p1=a;

  p2=&a[5];

  则p2-p1 的值为:

  A)无法 确定 B)10 C)5 D)12

  二、填空题(30分,每空2分)

  1.已知宏定义#define s 2+3

  printf(”%d”,s*4) ;的输出结果是__(1)_____。

  2.若已知a=10,b=2 .0,则表达式!a

  3.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。

  void fun2(int *x,int *y)

  {

  int t;

  t=*x; *x=*y.; *y=t;

  }

  void fun1()

  {

  int a=20, b=30, c=25;

  if(c>b) fun2(__.___(3)_______);

  if(a

  if(a

  }

  4.有以下程序,.执行后输出结果是 (6) 。

  main( )

  { int t=1,i=5;

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

  printf("%d\n",t);

  } ..

  ..

  5.C语言函数是由函数头和..函数体两部分组成。其中,函数头包括 (7) ,(8) 和(9) 。

  6.表达式(a==b)&&(a>b)的值是___(10)____。

  7.将下列字符串表示成C语言的字符串常量

  C:\TC\LIB_____(11)_________

  He said:"I’m a student."___________(12)_________________

  85% student passed.______________(13)_____________

  8.下面程序的功能是..计算1-3+5-7+…-99+101的值存在s中,请填空。

  #include

  #include

  main()

  {

  int i,t=1,s=0;

  for(i=1;i<=101;__(14)__)

  {

  .

  s=s+i*t;

  t=__(15)___;

  }

  .

  }

  三、读程序写结果

  1.写出程序的运行结果

  #include

  main()

  {

  int i, sum=0;

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

  {

  sum += i;

  if((i%2==0) || (i%3==0) )

  i += 5;

  }

  printf("%d", sum);

  }

  }

  2.写出程 序运行后的 输出结果

  #include

  char *ss(char *s)

  {

  return s+strlen(s)/2;

  }

  main( )

  { char *p,*str="abcdefgh";

  p=ss(str);

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

  }

  3.

  (1)函数sub()的功能是什么?

  (2)写出程序运行的输出结果。

  int sub(int num)

  {

  int i,product=1;

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

  product*=2;

  return(product);

  }

  main()

  {

  int i,sum=0;

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

  {

  sum+=sub(i);

  printf("sum%d=%dn",i,sum);

  }

  }

  四、编程(完形填空)(20分,每题10分)

  1.找出100以内满足下列条件的正整数,并按每行4个数字的格式显示在屏幕上。条件:能被7整除但不能被9整除,或者不能被7整除但可以被11整除。

  main()

  {

  int i,count=___(1)___;

  printf("nthese numbers are:n");

  for(i=1;i__(2)____100;i++)

  if((i%7==0&&i%9!=0) _(3)__(i%7!=0__(4) _i%11==0))

  {

  count++;

  printf("%10d",i);

  if(count%4==0)

  printf("___(5)_____");

  }

  }

  2.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差,

  例如:输入的两个字符串分别为abcd和abcfe,则输出为-2.请完成填空.

  #include

  main()

  {

  char str1[100],str2[100],c;

  int i,s;

  printf("ninput string1:n");

  gets(str1);

  printf("ninput string2:n");

  gets(__(6)____);

  i=0;

  while((str1[i]==str2[i])&&(str1[i]!=_(7)__))

  ___(8)____;

  s=____(9)_____;

  printf("___(10)_____n",s);

  }


C语言程序设计期末试题附答案3篇(扩展6)

——C语言程序设计(陈明晰著)课后答案下载3篇

C语言程序设计(陈明晰著)课后答案下载1

点击此处下载☞☞☞C语言程序设计(陈明晰著)课后答案☜☜☜


C语言程序设计期末试题附答案3篇(扩展7)

——c语言程序设计实践心得体会3篇

c语言程序设计实践心得体会1

  说到我学习C语言时,真是用千言万语呀!记得刚开始学的时候,我的C语言学的并不是很好,学期都过了快一半了,对C语言还是一知半解的,我是第四小组的组长,组长的职位给我了很大的压力,我一直认为做学问都要做到这一点,要么做到最好,要么就不去做它,本着这样一个心太,我下了一个决心就是要学好C语言,开始我用了最笨的方法,就是一个厚厚的本子,一支笔,一本C语言书,天天有事没事抄程序,不管什么程序,我都不放过,一个一个的抄,抄了有好几个本,回到宿舍就在机子上调程序,一个月过去了,老师让做C语言项目,是一个学生成绩管理系统,在当时这样一个项目对我们来说真是难度不小,可是我本着一个试一试的心太去做了,一个打死我都不敢相信的奇迹出现了,这个程序我写出来了,而且几乎是一气合成,而且只用了一个晚上的时间,写了足足有六页的代码,看着写在本子上的代码我有点不相信,这怎么可能呢,当晚我没有睡着觉,高兴啊,谁能睡的着。做这个项目让我明白了一些道理,再大的程序也是有不同的小程序组成的,因为我天天抄程序,抄的全是小程序,做这个大点的程序的时候我发现全是一个一个的小程序,抄了一个月的程序,当然能很顺利的就写出来了。

  在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

  在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

  由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理、简单界面程序、高级界面程序、程序的添加修改、用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

  上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

  学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基矗为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:

  1、加深对课堂讲授容的理解

  课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

  学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。

  通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。

  2、熟悉程序开发环境、学习计算机系统的操作方法

  一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基矗同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。

  3、学习上机调试程序

  完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。

  通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。

c语言程序设计实践心得体会2

  学习C语言已经一年多,对C也算得上半个入门者,期间也写过一些自娱自乐的代码。其实个人认为无论学习什么语言,最重要的是掌握习编程思想,然而C语言一种学习编程思想的基础语言。所以,C语言的重要性不言而喻。

  一、课本

  无论用的是什么书,要学好C语言,把书上的每一个例题、习题的代码读懂,这是学C最基本的要求。弄懂每一章的内容是什么?在C语言中有什么用?并尝试修改每一个例题的代码,采用不同的代码来实现题目的要求。

  二、课堂

  在每一节课上,注意老师讲的内容,有的知识,老师稍微提点,你就能弄懂,但是自己看书,或许你几天也弄不懂。老师更能清晰地让你明白所要求掌握的知识点。在课堂上,尽可能多的在草稿纸上写下你自己的代码,让老师看或是自己上机调试。

  三、笔记

  无论学习什么知识,笔记是重点,俗话说:好记性不如烂笔头。一个认真学习的人,总是记了很多笔记的,想学好编程,你的笔记本上总有课本上的每一个例题代码的核心部分。以及八大经典的算法举例,递推、递归、穷举、贪心、分治、动规、迭代、分枝。

  四、交流

  想学好C语言,交流是必须的,尤其是学习C语言的新手,这里,我向大家推介DD百度C语言贴吧,这里有很多的学习者,也有很多高手,在这里你能学到课本以及课堂上学不到的东西。和他人交流也是很重要的。

  五、上机练习

  这是学习好C语言的关重要的"环节,无论你编程学得多好,上机实现才是目的,所以,不怕要辛苦,把你的每一段代码都敲进计算机,让计算机来实现,这样有助于你对程序的理解,并试着修改你的代码,让你的代码更精简,效率更高。*时没事的时候,在计算机上多敲代码,一个编程厉害的高手,他的计算机上会有多代码。

  想成为编程高手的军规:

  1、大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘!

  2、编程不是技术活,而是体力活。

  3、C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。

  4、计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣。

  5、学习编程的秘诀是:编程,编程,再编程。

热门推荐
  • 中央八项规定内容全文

    中央八项规定内容全文中央八项规定内容全文关于改进工作作风、密切联系群众的八项规定一、要改进调查研究,到基层调研要深入了解真实情况,总结经验、研究问题、解决困难、指导工作,向群众学习、向实践学习,多同群

  • 中国共产党百年四大时

    吴庆军陈红梅张霞[摘要]党的百年庆祝大会上,习近平总书记总结了四个伟大成就,意味着中央已经将党的一百

  • 政治理论学习不够深入

    政治理论学习不够深入整改措施方案三篇政治理论学习不够深入整改措施方案1通过认真回顾自已近年来在工作、生活中的表现,切实感觉到与要求还有一定差距,有必要进行认真查摆自己存在的实际问题和不足,并剖析根源,

  • 全球安全倡议的核心要

    王玏刘军〔提  要〕全球安全倡议是破解人类安全难题、维护世界和平安宁的中国智慧和中国方案,其所包含的

  • 推进全面从严治党工作

    推进全面从严治党工作措施为全面贯彻党的十九大和十九届二中、三中、四中全会精神,深入学习贯彻习近平新时代中国特色社会主义思想和党中央治国理政新理念新思想新战略,认真落实省委X届X次全会和市委X届X次全会

  • 意识形态工作责任制实

    意识形态工作责任制实施细则第一章总则第一条为进一步加强和改进意识形态工作,落实党要管党意识形态原则,明确党组领导班子、领导干部的意识形态工作责任,结合实际,制定本细则。第二条意识形态工作是党的一项极端

  • 中华人民共和国建筑法

    中华人民共和国主席令第四十六号全国人民代表大会常务委员会关于修改《中华人民共和国建筑法》的决定已由中华人民共和国第十一届全国人民代表大会常务委员会第二十次会议于011年4月日通过,现予公布,自011年

  • 2023年度支部委员会会

    支部委员会会议记录1  会议时间:年月日参加人员:基础部全体党员  主持人:xxx记录人:xxx  会议内容:  党支部活动记录  时间:年月日出席人数:缺席人员:  主持人:老师)记录人:  活动