欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語(yǔ)言

C語(yǔ)言經(jīng)典例題及答案

時(shí)間:2025-06-10 09:31:06 晶敏 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C語(yǔ)言經(jīng)典例題及答案(精選7套)

  引導(dǎo)語(yǔ):C語(yǔ)言應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開(kāi)發(fā)上,而且各類(lèi)科研都需要用到C語(yǔ)言,適于編寫(xiě)系統(tǒng)軟件,三維,二維圖形和動(dòng)畫(huà),具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。以下是小編整理的C語(yǔ)言經(jīng)典例題及答案,歡迎參考閱讀!

  C語(yǔ)言經(jīng)典例題及答案 1

  一、求一個(gè)任意邊長(zhǎng)的矩形面積。

  #include

  void main()

  {int w,h,sum;

  scanf("%d%d",&w,&h);

  sum=w*h;

  printf("area=%d",sum);

  }

  二、求一個(gè)任意半徑的圓的面積及周長(zhǎng)。

  #define PI 3.14159

  #include

  void main()

  {float r,area,c;

  scanf("%f",&r);

  area=PI*r*r;

  c=2*PI*r;

  printf("area=%fcircle=%f",area,c);

  }??

  三、已知:w=5, y=4, z=2, 求表達(dá)式:w*y/z的值,并輸出。

  ##include

  void main()

  { int w,y,z,r;

  w=5;

  y=4;

  z=2;

  r=w*y/z;

  printf("%5d",r);

  }

  一、從鍵盤(pán)上輸入三個(gè)數(shù),求出其中的`最大值,并輸出。

  #include

  void main()

  {int a,b,c,max;

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

  max=a;

  if(max

  if(max

  printf("max=%d",max);

  }??

  二、求sin300+sin600+cos300+cos600之和。(注意:30*3.14159/180)

  #include

  #define PI 3.14159

  #include

  void main()

  {float a,b,sum;

  a=30*PI/180;

  b=60*PI/180;

  sum=sin(a)+sin(b)+cos(a)+cos(60);

  printf("total=%f",sum);

  }

  三、比較兩個(gè)數(shù)的大小。如果x大于y,則輸出:x>y,否則輸出:x

  #include

  void main()

  {int x,y;

  scanf("%d,%d",&x,&y);

  if(x>y)

  printf("x>y");

  else

  printf("x

  }

  C語(yǔ)言經(jīng)典例題及答案 2

  1: 第1題請(qǐng)編寫(xiě)函數(shù)fun,其功能使:將兩個(gè)兩位正整數(shù)a b合并形成一個(gè)整數(shù)放在c中。合并的方式使:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上。

  答案:

  void fun(int a,int b,long *c)

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

  2: 第2題請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能使:計(jì)算n門(mén)課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。

  答案:

  float fun(float *a,int n)

  {float ave=0.0;

  int i;

  for(i=0;i

  ave+=a;

  ave/=n;

  return ave;}

  3: 第3題假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun,它的.功能使:將字符串尾部的*號(hào)全部刪除,前面和中間的*號(hào)不刪除。

  答案:

  void fun(char *a)

  {int i=0;

  char *p,*q;

  p=q=a;

  while(*p)

  p++;

  p--;

  while(*p==‘*’)

  p--;

  while(q<=p)

  {a=*q;

  i++;

  q++;}

  a=‘’;}

  4: 第4題請(qǐng)編寫(xiě)函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a b合并形成一個(gè)整數(shù)放在c中,合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c的個(gè)位和百位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上。

  答案:

  void fun(int a,int b,long *c)

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

  5: 第5題 n名學(xué)生的成績(jī)已在主函數(shù)中放入一個(gè)帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:求出平均分,由函數(shù)值返回。

  答案:

  double fun(strec *h)

  {double aver=0.0;

  while(h!=null)

  {aver+=h->s;

  hy=h->next;}

  aver/=n;

  return aver;}

  6: 第6題請(qǐng)編寫(xiě)函數(shù)fun,計(jì)算并輸出給定10個(gè)數(shù)的方差。

  答案:

  double fun(double x[10])

  {int i,j;

  double s=0.0,s1=0.0;

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

  s1+=x;

  s1/=10;

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

  s+=(x[j]-s1)*(x[j]-s1);

  s/=10;

  s=pow(s,0.5);

  return s;}

  7: 第7題請(qǐng)編寫(xiě)函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a b合并形成一個(gè)整數(shù)放在c 中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的個(gè)位和百位上。

  答案:

  void fun(int a,int b,long *c)

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

  C語(yǔ)言經(jīng)典例題及答案 3

  c語(yǔ)言試題

  一 選擇題(7分,每小題0.5分)

  1.C語(yǔ)言源程序的基本單位是( )。

  A 過(guò)程 B 函數(shù) C 子程序 D 標(biāo)識(shí)符

  2.下列程序的輸出結(jié)果是( )。

  main( )

  { int a=7,b=5;

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

  }

  A 5 B 1 C 0 D不確定值

  3.假設(shè)變量a,b均為整型,表達(dá)式(a=5,b=2,a>b?a++:b++,a+b)的值是( )。

  A 7 B 8 C 9 D 2

  4.設(shè)a為int型變量,執(zhí)行下列賦值語(yǔ)句后,a的取值分別是( )。

  a=125.534; a=(int)125.521%4; a=5<<2;

  A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20

  5.設(shè)有如下程序段,下面描述中正確的是 ( )。

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

  A 循環(huán)執(zhí)行一次 B循環(huán)是無(wú)限循環(huán) C循環(huán)體語(yǔ)句一次也不執(zhí)行 D循環(huán)體語(yǔ)句執(zhí)行一次

  6.以下程序的輸出結(jié)果為( )。

  int i;

  void prt( )

  { for(i=5;i<8;i++) printf("%c",*);

  printf(" ");

  }

  main( )

  { for(i=5;i<=8;i++) prt( );

  }

  A *** B *** *** *** *** C *** *** D * * *

  7.在C語(yǔ)言程序中,以下說(shuō)法正確的是( )。

  A函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

  B函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

  C函數(shù)的定義和函數(shù)的調(diào)用都不可以嵌套

  D函數(shù)的定義和函數(shù)的調(diào)用都可以嵌套

  8.以下函數(shù)調(diào)用語(yǔ)句中含有( )個(gè)實(shí)參。

  func((e1,e2),(e3,e4,e5));

  A 2 B 3 C 5 D 語(yǔ)法錯(cuò)誤

  9.以下程序的輸出結(jié)果為( )。

  #define ADD(x) x*x

  main( )

  { int a=4,b=6,c=7,d=ADD(a+b)*c;

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

  }

  A d=70 B d=80 C d=140 D d=700

  10.已知職工記錄描述如下,在Turbo C中,系統(tǒng)為變量w分配( )字節(jié)的空間。

  struct worker

  { int no;

  char name[20];

  char sex;

  union

  { int day; int month; int year;}birth;

  } w;

  A 29 B 20 C 25 D 6

  11.設(shè)有以下定義,值為5的枚舉常量是( )。

  enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

  A tue B sat C fri D thu

  12.下面選項(xiàng)中正確的賦值語(yǔ)句是(設(shè) char a[5],*p=a;)( )。

  A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd";

  13.設(shè)有以下程序段,則值為6的表達(dá)式是( )。

  struct st { int n; struct st *next;};

  static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;

  p=&a[0];

  A p++->n B ++p->n C p->n++ D (*p).n++

  14.C語(yǔ)言中的文件類(lèi)型只有( )。

  A 索引文件和文本文件兩種 B 文本文件一種

  C 二進(jìn)制文件一種 D ASCII碼文件和二進(jìn)制文件兩種

  二 判斷對(duì)錯(cuò),對(duì)的劃“√”,錯(cuò)的劃“×”(5分,每小題0.5分)

  1.在Turbo C中,整型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié)。( )

  2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的輸出結(jié)果為A。( )

  3.break語(yǔ)句用在循環(huán)體中,可結(jié)束本層循環(huán),continue語(yǔ)句用在循環(huán)體中,可結(jié)束本次循環(huán)。( )

  4.函數(shù)的遞歸調(diào)用不過(guò)是一個(gè)函數(shù)直接或間接地調(diào)用它自身。( )

  5.函數(shù)strlen("ASDFG ")的值是7。( )

  6.通過(guò)return語(yǔ)句,函數(shù)可以帶回一個(gè)或一個(gè)以上的返回值。( )

  7.結(jié)構(gòu)體類(lèi)型只有一種。 ( )

  8.char *p="girl";的含義是定義字符型指針變量p,p的值是字符串"girl"。( )

  9.若有定義:char *p(char a[10]);則p是函數(shù)名。( )

  10.用fopen("file","r+");打開(kāi)的文件"file"可以進(jìn)行修改。 ( )

  三 寫(xiě)出下列程序的運(yùn)行結(jié)果(10分,每小題2分)

  1.float average (float array[10])

  { int i;

  float aver,sum=array[0];

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

  sum=sum+array[i];

  aver=sum/10;

  return(aver);

  }

  main( )

  { float score[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver;

  int i;

  aver=average (score);

  printf (“average score is %5.2f ”,aver);

  }

  2.main( )

  { char a[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa;

  for(p=0;p

  printf(“%2c”,*p);

  printf(“ ”);

  printf(“%2c ”,**(pa=&p));

  }

  3.main( )

  { int a,b,s=0;

  for(a=1,b=1;a<=100;a++)

  { if(b>=20) break;

  if(b%3==1)

  { b+=3; continue; }

  b-=5;

  }

  printf(“a=%d b=%d ”,a,b);

  }

  4.main()

  { printf(“main( ) :%d ”,fact(5));

  fact(-5);

  }

  fact(int value)

  { int f;

  if(value<0)

  { printf(“Arg error ");

  return(-1);

  }

  else if(value==1||value==0) f=1;

  else f=value*fact(value-1)+1;

  printf(“This called value=%d ”,f);

  return f;

  }

  5.main( )

  { int a=012,b=0x12,k=12;

  char c=‘102’,d=‘ ’;

  printf(“a=%d b=%d k=%d ”,a,b,k);

  printf(“c=%c,d=%c%o ”,c,d,a);

  a=‘A’; c=49;

  printf(“a=%d c=%c ”,a,c);

  }

  四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(8分,每個(gè)空1分)

  1.有一個(gè)3*4矩陣,求其中的最大元素。

  max_value( (1) )

  { int i,j,max;

  max=array[0][0];

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

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

  if(array[i][j]>max)

  max=array[i][j];

  (2) ;

  }

  main( )

  { int a[3][4], i,j;

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

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

  (3) ;

  printf(“max value is %d ”,max_value(a));

  }

  2.輸入x、y兩個(gè)整數(shù),按先大后小的順序輸出x、y。

  #include “stdio.h”

  main( )

  { int x,y, *px,*py, (4) ;

  scanf(“%d%d”,&x,&y);

  (5) ; (6) ;

  if(x

  { p=px; px=py; py=p; }

  printf(“x=%d,y=%d ”,x,y);

  printf(“MAX=%d,MIN=%d ”,*px,*py);

  }

  3.用選擇排序法對(duì)任意10個(gè)整數(shù)按照由小到大排序。

  main()

  { int a[11],i,j,k,t;

  printf("Please input 10 numbers: ");

  for(i=1;i<11;i++) scanf("%d",&a[i]);

  printf(" ");

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

  { (7) ;

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

  if(a[j]>a[k]) k=j;

  if(k!=i)

  { t=a[k]; a[k]=a[i]; a[i]=t;}

  }

  printf("The sorted numbers: ");

  for(i=1;i<11;i++) printf("%d ",a[i]);

  }

  答案

  一 選擇題(7分,每小題0.5分)

  1. B 2. C 3. B 4. B 5. C

  6. A 7. B 8. A 9. A 10. C

  11. A 12. A 13. B 14. D

  二 判斷對(duì)錯(cuò),對(duì)的劃“√”,錯(cuò)的劃“×”(5分,每小題0.5分)

  1.× 2.× 3.√ 4.√ 5.×

  6.× 7.× 8.× 9.√ 10.√

  三 寫(xiě)出下列程序的運(yùn)行結(jié)果(10分,每小題2分)

  1. 2. 3.

  4. 5.

  四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(8分,每個(gè)空1分)

  1.(1)int array[3][4](int array[][4]) (2)return(max) (3)scanf(“%d”,&a[i][j])

  2.(4)*p (5)px=&x(py=&y) (6)py=&y(px=&x)

  3.(7) (8)

  2003C語(yǔ)言試題3

  一 選擇題(24分,每小題2分)

  1.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的是( )。

  A 存放讀入數(shù)據(jù)項(xiàng)的存儲(chǔ)區(qū) B 存放讀入數(shù)據(jù)的地址或指向此地址的指針

  C 一個(gè)指向所讀文件的文件指針 D 一個(gè)整形變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

  2.以下程序的輸出結(jié)果為( )。

  main( )

  { int i=010,j=10;

  printf("%d,%d ",i++,j--);

  }

  A 11,9 B 9,10 C 8,10 D 9,9

  3.設(shè)a為int型變量,執(zhí)行下列賦值語(yǔ)句后,a的取值分別是( )。a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;

  A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D 125.534,6.666666,2,20

  4.設(shè)i和k都是int類(lèi)型,則for循環(huán)語(yǔ)句( )。

  for(i=0,k=-1;k=1;i++,k++) printf("****");

  A 循環(huán)結(jié)束的條件不合法 B 循環(huán)體一次也不執(zhí)行 C 循環(huán)體只執(zhí)行一次 D 是無(wú)限循環(huán)

  5.以下程序的輸出結(jié)果為( )。

  main( )

  { char c;

  int i;

  for(i=65;i<68;i++)

  { c=i+32;

  switch(c)

  { case a:case b:case c:printf("%c,",c);break; default:printf("end");}

  }

  }

  A a,b,c,end B a,a,a,end C a,a,a, D a,b,c,

  6.函數(shù)調(diào)用語(yǔ)句:fseek(fp,-10L,2);的含義是( )。

  A 將文件位置指針從文件末尾處向文件頭的方向移動(dòng)10個(gè)字節(jié)

  B 將文件位置指針從當(dāng)前位置向文件頭的方向移動(dòng)10個(gè)字節(jié)

  C 將文件位置指針從當(dāng)前位置向文件末尾方向移動(dòng)10個(gè)字節(jié)

  D 將文件位置指針移到距離文件頭10個(gè)字節(jié)處

  7.以下程序的輸出結(jié)果為( )。

  main( )

  { char s1[40]="country",s2[20]="side";

  int i=0,j=0;

  while(s1[i]!=) i++;

  while(s2[j]!=) s1[i++]=s2[j++];

  s1[i]=0;

  printf("%s ",s1);

  }

  A side B country C sidetry D countryside

  8.下列說(shuō)法不正確的是( )。

  A 主函數(shù)main中定義的變量在整個(gè)文件或程序中有效

  B 不同函數(shù)中,可以使用相同名字的變量

  C 形式參數(shù)是局部變量

  D 在一個(gè)函數(shù)內(nèi)部,可以在復(fù)合語(yǔ)句中定義變量,這些變量只在本復(fù)合語(yǔ)句中有效

  9.在下列程序段中,枚舉變量 c1的值是( )。

  enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;

  A 1 B 3 C 5 D 6

  10.設(shè)有說(shuō)明 int (*ptr)();其中標(biāo)識(shí)符ptr是( )。

  A 是一個(gè)指向整形變量的指針 B 是一個(gè)指針,它指向一個(gè)函數(shù)值是int的函數(shù)

  C 是一個(gè)函數(shù)名 D定義不合法

  11.定義由n個(gè)指向整形數(shù)據(jù)的指針組成的數(shù)組p,其正確的方式為( )。

  A int p; B int (*p)[n]; C int *p[n]; D int (*p)( );

  12.具有相同類(lèi)型的指針類(lèi)型變量p與數(shù)組a,不能進(jìn)行的.操作是( )。

  A p=a; B *p=a[0]; C p=&a[0]; D p=&a;

  二 判斷對(duì)錯(cuò),對(duì)的劃“√”,錯(cuò)的劃“×”(20分,每小題2分)

  1.參加位運(yùn)算的數(shù)據(jù)可以是任何類(lèi)型的數(shù)據(jù)。( )

  2.若有定義和語(yǔ)句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通過(guò)鍵盤(pán)輸入:10,A,12.5,則a=10,c=‘A’,f=12.5。( )

  3.C語(yǔ)言把文件看作是一個(gè)字符(字節(jié))的序列。( )

  4.若有宏定義:#define S(a,b) t=a;a=b;b=t由于變量t沒(méi)定義,所以此宏定義是錯(cuò)誤的。( )

  5.在Turbo C中,下面的定義和語(yǔ)句是合法的:file *fp;fp=fopen("a.txt","r");( )

  6.若有定義:char s[ ]="china";則Turbo C系統(tǒng)為數(shù)組s開(kāi)辟6個(gè)字節(jié)的內(nèi)存單元。( )

  7.若有定義和語(yǔ)句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++) sum+=a[i][2-i];則sum=21。( )

  8.若有定義和語(yǔ)句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);輸出結(jié)果是1。( )

  9.在程序中定義了一個(gè)結(jié)構(gòu)體類(lèi)型后,可以多次用它來(lái)定義具有該類(lèi)型的變量。( )

  10.在Turbo C中,此定義和語(yǔ)句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;( )

  三 寫(xiě)出下列程序的運(yùn)行結(jié)果(36分,每小題6分)

  1.main( )

  { int i=29,j=6,k=2,s;

  s=i+i/j%k-9;

  printf(“s=%d ”,s);

  }

  2.main( )

  { int x=31,y=2,s=0;

  do

  { s-=x*y;

  x+=2;

  y-=3;} while( x%3==0);

  printf(“x=%d y=%d s=%d ”,x,y,s);

  }

  3.main( )

  { int a[6]={10,20,30,40,50,60},i;

  invert(a,0,5);

  for(i=0;i<6;i++) printf(“%d,”,a[i]);

  printf(“ ”);

  }

  invert(int s[ ],int i,int j)

  { int t;

  if(i

  { invert(s,i+1j-1);

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

  }

  }

  4.#include

  main()

  { char str[ ]=“The C program”,c;

  int i;

  for(i=2;(c=str[i])!=‘’;i++)

  { switch(c)

  { case ‘g’: ++i; break;

  case ‘o’: continue;

  default: printf(“%c”,c); continue;

  }

  printf(“*”);

  }

  printf(“ ”);

  }

  5.struct w

  { char low;

  char high;

  };

  union u

  { struct w byte;

  short word;

  }uw;

  main( )

  { int result;

  uw.word=0x1234;

  printf(“word value:%04x ”,uw.word);

  printf(“high byte:%02x ”,uw.byte.high);

  printf(“l(fā)ow byte:%02x ”,uw.byte.low);

  uw.byte.low=0x74;

  printf(“word value:%04x ”,uw.word);

  result=uw.word+0x2a34;

  printf(“the result:%04x ”,result);

  }

  6.main()

  { char *s2=“I love China!”,**s1=&s2;

  char *s3,c,*s4=“w”;

  s3=&c;

  *s3=‘H’;

  s2=s2+2;

  printf(“%s %c %s %c ”,s2,*s3,s4,**s1);

  }

  四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(20分,每個(gè)空2分)

  1. 百馬百擔(dān)問(wèn)題:有100匹馬,馱100擔(dān)貨,大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān),問(wèn)大、中、小馬各多少匹?

  main( )

  { int hb,hm,hl,n=0;

  for(hb=0;hb<=100;hb+= (1) )

  for(hm=0;hm<=100-hb;hm+= (2) )

  { hl=100-hb- (3) ;

  if(hb/3+hm/2+2* (3) ==100)

  { n++;

  printf("hb=%d,hm=%d,hl=%d ",hb/3,hm/2,2*hl);

  }

  }

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

  }

  2.用“起泡法”對(duì)輸入的10個(gè)字符排序后按從小到大的次序輸出。

  #define N 10

  char str[N];

  main()

  { int i,flag;

  for(flag=1;flag==1;)

  { scanf("%s",str);

  flag=0;

  printf(" ");

  }

  sort(___(4)___);

  for(i=0;i

  printf("%c",str[i]);

  printf(" ");

  }

  sort(char str[N])

  { int i,j;

  char t;

  for(j=1;j

  for(i=0;(i

  if(str[i]>str[i+1])

  { t=str[i];

  ____(5)____;

  ____(6)____;

  }

  }

  3.以下程序是一個(gè)函數(shù),功能是求二階矩陣(m行n列矩陣)的所有靠外側(cè)的各元素值之和。(本程序中二階矩陣用一維數(shù)組來(lái)表示。)

  例如,矩陣為:

  3 0 0 3

  2 5 7 3

  1 0 4 2

  則所有靠外側(cè)的各元素值之和為3+0+0+3+2+3+1+0+4+2=18。

  add(int m,int n,int arr[])

  { int i,j,sum=0;

  for(i=0;i

  for(j=0;j

  sum=sum+ (7) ;

  for(j=0;j

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

  sum=sum+arr[i*n+j];

  return(sum);

  }

  4.用指針作函數(shù)參數(shù),編程序求一維數(shù)組中的最大和最小的元素值。

  #define N 10

  main()

  { void maxmin(int arr[],int *pt1,int *pt2,int n);

  int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

  p1=&a; p2=&b;

  maxmin(array,p1,p2,N);

  printf("max=%d,min=%d",a,b);

  }

  void maxmin(int arr[],int *pt1,int *pt2,int n)

  { int i;

  *pt1=*pt2=arr[0];

  for(i=1;i

  { if(arr[i]>*pt1) (9) ;

  if(arr[i]<*pt2) (10) ;

  }

  }

  答案

  一 選擇題(24分,每小題2分)

  1.( B ) 2.( C ) 3.( B ) 4.( D ) 5.( D ) 6.( A )

  7.( D ) 8.( A ) 9.( D ) 10.( B ) 11.( C ) 12.( D )

  二 判斷對(duì)錯(cuò),對(duì)的劃“√”,錯(cuò)的劃“×”(20分,每小題2分)

  1.( × ) 2.( √ ) 3.( √ ) 4.( × ) 5.( × )

  6.( √ ) 7.( √ ) 8.( × ) 9.( √ ) 10.( √ )

  三 寫(xiě)出下列程序的運(yùn)行結(jié)果(36分,每小題6分)

  1. s=20 2.x=35 y=-4 s=-29 3.60,50,40,30,20,10,

  4.e C pr*am 5.word value:1234 6.love China! H w l

  high byte:12

  low byte:34

  word value:1274

  the result:3ca8

  四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(20分,每個(gè)空2分)

  1.(1) 3 (2) 2 (3)hm hl

  2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t

  3.(7) arr[i*n+j](或者arr[i*10+j])

  (8) i

  4.(9) *ptr1=arr[i] (10) *ptr2=arr[i]

  C語(yǔ)言經(jīng)典例題及答案 4

  1.下列敘述中正確的是()。

  A.所有數(shù)據(jù)結(jié)構(gòu)必須有根結(jié)點(diǎn)

  B.所有數(shù)據(jù)結(jié)構(gòu)必須有終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))

  C.只有一個(gè)根結(jié)點(diǎn),且只有一個(gè)葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是線(xiàn)性結(jié)構(gòu)

  D.沒(méi)有根結(jié)點(diǎn)或沒(méi)有葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線(xiàn)性結(jié)構(gòu)

  【答案】D

  【解析】D項(xiàng)正確,線(xiàn)性結(jié)構(gòu)的特點(diǎn)是:①集合中必存在“第一個(gè)元素"且惟一②集合中必存在“最后一個(gè)元素”且惟一;③除最后一個(gè)元素外,其他數(shù)據(jù)元素均有惟一的“后繼”,④除第一個(gè)元素外,其他數(shù)據(jù)元素均有惟一的“前驅(qū)”。所以沒(méi)有根結(jié)點(diǎn)或沒(méi)有葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線(xiàn)性結(jié)構(gòu)。AB兩項(xiàng)錯(cuò)誤,不是所有數(shù)據(jù)結(jié)構(gòu)都必須有根結(jié)點(diǎn)和葉子結(jié)點(diǎn);C項(xiàng)錯(cuò)誤,數(shù)據(jù)結(jié)構(gòu)中若有中間結(jié)點(diǎn)不滿(mǎn)足只有一個(gè)前件或者后件的條件,就不是線(xiàn)性結(jié)構(gòu)。答案選擇D選項(xiàng)。

  2.以下敘述中錯(cuò)誤的是()。

  A. C語(yǔ)言中的每條可執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

  B. C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件

  C.用C語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中

  D. C語(yǔ)言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序

  【答案】A

  【解析】A項(xiàng)錯(cuò)誤,注釋語(yǔ)句不會(huì)被翻譯成二進(jìn)制的機(jī)器指令。C源程序經(jīng)過(guò)C編譯程序編譯之后生成后綴為.obj的二進(jìn)制文件(稱(chēng)為目標(biāo)文件),然后由“鏈接程序”(Link)的軟件把.obj文件與各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為.exe的'可執(zhí)行文件。答案選擇A選項(xiàng)。

  3. C語(yǔ)言主要是借助以下()功能來(lái)實(shí)現(xiàn)程序模塊化的。

  A.定義函數(shù)

  B.定義常量和外部變量

  C.三種基本結(jié)構(gòu)語(yǔ)句

  D.豐富的數(shù)據(jù)類(lèi)型

  【答案】A

  【解析】C程序的模塊化主要通過(guò)函數(shù)來(lái)實(shí)現(xiàn)。C語(yǔ)言允許對(duì)函數(shù)單獨(dú)進(jìn)行編譯,從而可以實(shí)現(xiàn)模塊化。答案選擇A選項(xiàng)。

  4.有以下程序段:

  char ch;

  int k;

  ch='a';

  k=12;

  print("%c,%d,",h,ch,k);

  printf("k=%d",k);

  已知字符a的ASCII碼十進(jìn)制值為97,則執(zhí)行上述程序段后輸出的結(jié)果是()。

  A.因變量類(lèi)型與格式描述符的類(lèi)型不匹配輸出無(wú)定值

  B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值

  C.a,97,12k=12

  D. a,97,k=12

  【答案】D

  【解析】字符變量的值是該字符的ASCII碼值,可以參與整型變量所允許的任何運(yùn)算。"ch='a",%c表示以字符格式輸出ch的值,所以輸出為a;%d表示以十進(jìn)制代碼的形式輸出ch的值,為97;k沒(méi)有對(duì)應(yīng)的輸出格式,不輸出。在第二個(gè)語(yǔ)句中,首先輸出"k=",然后以十進(jìn)制代碼輸出k的值,為12。答案選擇D選項(xiàng)。

  5.下列敘述中正確的是()。

  A.棧是“先進(jìn)先出”的線(xiàn)性表

  B.隊(duì)列是“先進(jìn)后出"的線(xiàn)性表

  C.循環(huán)隊(duì)列是非線(xiàn)性結(jié)構(gòu)

  D.有序線(xiàn)性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

  【答案】D

  【解析】有序的線(xiàn)性表既可采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。A項(xiàng)錯(cuò)誤,棧是“先進(jìn)后出"的線(xiàn)性表B項(xiàng)錯(cuò)誤,隊(duì)列是“先進(jìn)先出"的線(xiàn)性表;C項(xiàng)錯(cuò)誤,循環(huán)隊(duì)列是線(xiàn)性結(jié)構(gòu)的,有序的線(xiàn)性表既可采用順序存儲(chǔ)結(jié)構(gòu),也可采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

  6.某二叉樹(shù)的中序序列為DCBAEFG,后序序列為DCBGFEA,則該二叉樹(shù)的深度(根結(jié)點(diǎn)在第1層)為()。

  A. 5

  B. 40

  C.3

  D. 2

  【答案】B

  【解析】二叉樹(shù)的后序序列為DCBGFEA,則A為根結(jié)點(diǎn)。中序序列為DCBAEFG,則DCB為左子樹(shù)結(jié)點(diǎn),EFG為右子樹(shù)結(jié)點(diǎn)。同理B為C父結(jié)點(diǎn),C為D父結(jié)點(diǎn)。根據(jù)分析,可畫(huà)出左子樹(shù),同理E為F父結(jié)點(diǎn),F(xiàn)為G父結(jié)點(diǎn)。根據(jù)分析,可畫(huà)出右子樹(shù),故二叉樹(shù)深度為4層。答案選擇B選項(xiàng)。

  7.設(shè)有定義:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,則以下賦值語(yǔ)句中正確的是()。

  A. s[0]=m[1];

  B. s=m;

  C.s.n=m.n;

  D. s[2].x=m[2].x;

  【答案】A

  【解析】定義了結(jié)構(gòu)體類(lèi)型數(shù)組s,長(zhǎng)度為2,結(jié)構(gòu)體類(lèi)型數(shù)組m,長(zhǎng)度為2,并對(duì)數(shù)組m進(jìn)行了初始化。同類(lèi)型的結(jié)構(gòu)體可以直接用變量名實(shí)現(xiàn)賦值,A項(xiàng)正確;數(shù)組名為數(shù)組首地址,地址常量之間不可以相互賦值,B項(xiàng)錯(cuò)誤;數(shù)組名為地址常量不是結(jié)構(gòu)體變量,不能引用成員,C項(xiàng)錯(cuò)誤;s[2]與m[2]數(shù)組越界,D項(xiàng)錯(cuò)誤。答案選擇A選項(xiàng)。

  8.關(guān)于C語(yǔ)言標(biāo)識(shí)符,以下敘述錯(cuò)誤的是()。

  A.標(biāo)識(shí)符可全部由數(shù)字組成

  B.標(biāo)識(shí)符可全部由下劃線(xiàn)組成

  C.標(biāo)識(shí)符可全部由小寫(xiě)字母組成

  D.標(biāo)識(shí)符可全部由大寫(xiě)字母組成

  【答案】A

  【解析】C語(yǔ)言標(biāo)識(shí)符只能由字母、數(shù)字、下劃線(xiàn)構(gòu)成,且只能以字母、下劃線(xiàn)開(kāi)頭,故答案選擇A選項(xiàng)。

  9.以下程序段中的變量已定義為int類(lèi)型,則

  sum=pAd=5;

  pAd=sum++,++pAd,pAd++;

  printf("%d",pAd);

  程序段的輸出結(jié)果是()。

  A. 6

  B. 4

  C. 5

  D. 7

  【答案】D

  【解析】自增和自減運(yùn)算符的兩種用法:前置運(yùn)算,運(yùn)算符放在變量之前,規(guī)則是先使變量的值增(或減)1,然后以變化后表達(dá)式的值參與其他運(yùn)算;后置運(yùn)算,運(yùn)算符放在變量之后,規(guī)則是變量先參與其他運(yùn)算,然后再使變量的值增(或減)1。執(zhí)行pAd=sum++,sum++是后置自增,執(zhí)行完后,pAd=5,sum=6。++pAd和pAd++語(yǔ)句中沒(méi)有其他運(yùn)算,即效果相同,pAd分別加1,兩句執(zhí)行完后,pAd7。答案選擇D選項(xiàng)。

  10.設(shè)循環(huán)隊(duì)列為Q(1:m),其初始狀態(tài)為front=rear=m。經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=20,rear=15,F(xiàn)要在該循環(huán)隊(duì)列中尋找最小值的元素,最壞情況下需要比較的次數(shù)為()。

  A. 5

  B. 6

  C.m-5

  D. m-6

  【答案】D

  【解析】循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)首指針指向隊(duì)首元素的前一個(gè)位置,因此,從隊(duì)首指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素,隊(duì)列初始狀態(tài)為front=rear=m,當(dāng)front=20,rear=15時(shí),隊(duì)列中有m-20+15=m-5個(gè)元素,最壞情況下需要比較次數(shù)為m-6次。答案選擇D選項(xiàng)。

  C語(yǔ)言經(jīng)典例題及答案 5

  1.C語(yǔ)言編譯程序的功能是()。

  A.執(zhí)行一個(gè)C語(yǔ)言編寫(xiě)的源程序

  B.把C源程序翻譯成ASCII碼

  C.把C源程序翻譯成機(jī)器代碼

  D.把C源程序與系統(tǒng)提供的庫(kù)函數(shù)組合成一個(gè)二進(jìn)制執(zhí)行文件

  【答案】C

  【解析】編譯程序的功能是將“高級(jí)語(yǔ)言”翻譯為“機(jī)器語(yǔ)言”。每條C語(yǔ)言語(yǔ)句,經(jīng)過(guò)編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。答案選擇C選項(xiàng)。

  2.計(jì)算機(jī)高級(jí)語(yǔ)言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是()。

  A. C語(yǔ)言程序僅可以編譯執(zhí)行

  B. C語(yǔ)言程序僅可以解釋執(zhí)行

  C. C語(yǔ)言程序既可以編譯執(zhí)行,又可以解釋執(zhí)行;

  D.以上說(shuō)法都不對(duì)

  【答案】A

  【解析】編譯執(zhí)行是指程序執(zhí)行前需要一個(gè)專(zhuān)門(mén)的編譯過(guò)程把程序編譯成機(jī)器語(yǔ)言的文件,再次運(yùn)行時(shí)不需要重新翻譯,執(zhí)行效率高;解釋執(zhí)行是指每個(gè)語(yǔ)句都是執(zhí)行的時(shí)候才翻譯,執(zhí)行效率低。用C語(yǔ)言編寫(xiě)的程序必須經(jīng)過(guò)編譯器編譯后,轉(zhuǎn)換為二進(jìn)制的機(jī)器指令來(lái)運(yùn)行。答案選擇A選項(xiàng)。

  3.以下敘述中錯(cuò)誤的是()。

  A. C語(yǔ)言中的每條可執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

  B. C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件

  C.用C語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中

  D. C語(yǔ)言源程序經(jīng)編譯后生成后綴為的目標(biāo)程序

  【答案】A

  【解析】A項(xiàng)錯(cuò)誤,注釋語(yǔ)句不會(huì)被翻譯成二進(jìn)制的機(jī)器指令。C源程序經(jīng)過(guò)C編譯程序編譯之后生成后綴為的二進(jìn)制文件(稱(chēng)為目標(biāo)文件),然后由“鏈接程序”(Link)的軟件把文件與各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為的可執(zhí)行文件。答案選擇A選項(xiàng)。

  4.以下敘述中錯(cuò)誤的是()

  A.C語(yǔ)言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的

  B.用C語(yǔ)言編寫(xiě)的源程序不能直接在計(jì)算機(jī)上運(yùn)行

  C.通過(guò)編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行

  D.在沒(méi)有安裝C語(yǔ)言集成開(kāi)發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的exe文件

  【答案】D

  【解析】A項(xiàng)正確,C語(yǔ)言的可執(zhí)行程序是由一系列機(jī)器指令組成的;BC項(xiàng)正確,用C語(yǔ)言編寫(xiě)的源程序必須經(jīng)過(guò)編譯,生成二進(jìn)制目標(biāo)代碼,再經(jīng)過(guò)連接才能運(yùn)行;D項(xiàng)錯(cuò)誤,C語(yǔ)言經(jīng)過(guò)編譯鏈接后的二進(jìn)制目標(biāo)代碼可以脫離C語(yǔ)言集成開(kāi)發(fā)環(huán)境獨(dú)立運(yùn)行。答案選擇D選項(xiàng)。

  5.以下敘述正確的是()。

  A. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的二進(jìn)制文件

  B. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的可執(zhí)行文件

  C. C編譯程序把文件后綴為的二進(jìn)制文件編譯成文件后綴為的可執(zhí)行文件

  D.鏈接程序把文件后綴為.c的'源程序文件鏈接成文件后綴為的可執(zhí)行文件

  【答案】A

  【解析】C編譯程序把文件后綴為C的源程序文件編譯成文件后綴為的二進(jìn)制文件,鏈接將一個(gè)或多個(gè)目標(biāo)文件與程序用到的庫(kù)文件連接起來(lái),形成一個(gè)可以在操作系統(tǒng)直接運(yùn)行的執(zhí)行程序,故排除B、C、D項(xiàng),答案選擇A選項(xiàng)。

  6.以下敘述中正確的是(A.在C語(yǔ)言程序中,main函數(shù)必須放在其他函數(shù)的最前面

  B.每個(gè)后綴為.c的C語(yǔ)言源程序都可以單獨(dú)進(jìn)行編譯

  C.在C語(yǔ)言程序中,只有main函數(shù)才可以單獨(dú)進(jìn)行編譯

  D.每個(gè)后綴為.c的C語(yǔ)言源程序都應(yīng)該包含一個(gè)main函數(shù)

  【答案】B

  【解析】main函數(shù)可以在程序的任何位置。每一個(gè)可執(zhí)行的C程序都必須有一個(gè)且只能有一個(gè)主函數(shù)。后綴名為.c的C語(yǔ)言源程序都可以單獨(dú)進(jìn)行編譯。main函數(shù)只是讓執(zhí)行程序的系統(tǒng)知道該從哪里開(kāi)始執(zhí)行程序(從主函數(shù)處執(zhí)行),其他有關(guān)這個(gè)程序的子函數(shù)是通過(guò)函數(shù)調(diào)用來(lái)實(shí)現(xiàn)其功能(不需main函數(shù))。答案選擇B選項(xiàng)。

  7.以下敘述中錯(cuò)誤的是()。

  A. C語(yǔ)言編寫(xiě)的函數(shù)源程序,其文件名后綴可以是.c

  B. C語(yǔ)言編寫(xiě)的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件

  C. C語(yǔ)言編寫(xiě)的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行;

  D.一個(gè)C語(yǔ)言程序只能有一個(gè)主函數(shù)

  【答案】C

  【解析】C源程序經(jīng)過(guò)C編譯程序編譯之后生成一個(gè)后綴為的二進(jìn)制文件(稱(chēng)為目標(biāo)文件),然后由稱(chēng)為“連接程序”(Link)的軟件,把此文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為的可執(zhí)行文件。只有含有main函數(shù)的經(jīng)過(guò)編譯鏈接才能執(zhí)行。答案選擇C選項(xiàng)。

  8.以下敘述中錯(cuò)誤的是(A.一個(gè)C程序可以包含多個(gè)不同名的函數(shù)

  B.一個(gè)C程序只能有一個(gè)主函數(shù)

  C. C程序在書(shū)寫(xiě)時(shí),有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過(guò)

  D. C程序的主函數(shù)必須用main作為函數(shù)名

  【答案】C

  【解析】一個(gè)C程序有且只有一個(gè)主函數(shù)main。一個(gè)C程序可以包含多個(gè)不同名字的子函數(shù)。C程序在書(shū)寫(xiě)時(shí)沒(méi)有嚴(yán)格的縮進(jìn)要求。答案選擇C選項(xiàng)。

  9.以下敘述中正確的是()。

  A. C語(yǔ)言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_(kāi)始執(zhí)行

  B.可以在程序中由用戶(hù)指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_(kāi)始執(zhí)行

  C. C語(yǔ)言程序?qū)脑闯绦蛑械谝粋(gè)函數(shù)開(kāi)始執(zhí)行;

  D. main的各種大小寫(xiě)拼寫(xiě)形式都可以作為主函數(shù)名,如:MAIN,Main等

  【答案】A

  【解析】用戶(hù)不能指定某函數(shù)為主函數(shù),C語(yǔ)言規(guī)定,程序從main函數(shù)開(kāi)始執(zhí)行,從main函數(shù)退出,C語(yǔ)言函數(shù)名區(qū)別大小寫(xiě)。答案選擇A選項(xiàng)。

  10.下列敘述中錯(cuò)誤的是()。

  A. C程序可以由一個(gè)或多個(gè)函數(shù)組成

  B. C程序可以由多個(gè)程序文件組成

  C.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法

  D.一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在

  【答案】C

  【解析】一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語(yǔ)言程序可以實(shí)現(xiàn)多種算法,答案選擇C選項(xiàng)。

  C語(yǔ)言經(jīng)典例題及答案 6

  1.若有以下數(shù)組說(shuō)明,則i=10;a[a[i]]元素?cái)?shù)值是(C )。

  int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

  A、10

  B、9

  C、6

  D、5

  先算a[a[i]]內(nèi)層的a[i],由于i=10,因此a[i]即a[10].

  a[10]對(duì)應(yīng)下面數(shù)組中的元素為9.因此a[a[i]]即為a[9]

  a[9]對(duì)應(yīng)下面數(shù)組中的元素為6.因此a[9]即為6

  2.若有說(shuō)明:int a[][3]={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小為: ( B )

  A、2

  B、3

  C、4

  D、無(wú)確定值

  5 7

  D、3 6 9

  二維數(shù)組的一維大小,即指二維數(shù)組的行數(shù),在本題中,按行對(duì)二維數(shù)組賦值,因此內(nèi)層有幾個(gè)大括號(hào),數(shù)組就有幾行

  3.對(duì)二維數(shù)組的.正確定義是(C )

  詳見(jiàn)教材P149~152,二維數(shù)組的定義、初始化

  類(lèi)型符數(shù)組名[常量表達(dá)式][常量表達(dá)式]

  二維數(shù)組可以看做是矩陣

  類(lèi)型符是指數(shù)組中數(shù)組元素的類(lèi)型;數(shù)組名要符合標(biāo)識(shí)符命名規(guī)則;第一個(gè)常量表達(dá)式是指數(shù)組的行數(shù);第二個(gè)常量表達(dá)式是指數(shù)組的列數(shù);常量表達(dá)式的值只能是整數(shù),不可以是變量,而且從1開(kāi)始計(jì)數(shù)。

  一維數(shù)組初始化時(shí)可以省略數(shù)組長(zhǎng)度

  二維數(shù)組初始化時(shí)可以省略行數(shù),但不能省略列數(shù)

  選項(xiàng)A,B,都省略了列數(shù)

  選項(xiàng)D,不符合二維數(shù)組定義的一般形式,行、列常量表達(dá)式應(yīng)該放在不同的[]中

  A、int a[ ][ ]={1,2,3,4,5,6};

  B、int a[2] []={1,2,3,4,5,6};

  C、int a[ ] [3]={1,2,3,4,5,6};

  D、int a[2,3]={1,2,3,4,5,6};

  4.已知int a[3][4];則對(duì)數(shù)組元素引用正確的是__C___

  A、a[2][4]

  B、a[1,3]

  C、a[2][0]

  C語(yǔ)言經(jīng)典例題及答案 7

  (1)算法的時(shí)間復(fù)雜度是指_______。

  A)執(zhí)行算法程序所需要的時(shí)間

  B)算法程序的長(zhǎng)度

  C)算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)

  D)算法程序中的指令條數(shù)

  答案:C

  評(píng)析:所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。

  (2)下列敘述中正確的是________。

  A)線(xiàn)性表是線(xiàn)性結(jié)構(gòu)B)棧與隊(duì)列是非線(xiàn)性結(jié)構(gòu)

  C)線(xiàn)性鏈表是非線(xiàn)性結(jié)構(gòu)D)二叉樹(shù)是線(xiàn)性結(jié)構(gòu)

  答案:A

  評(píng)析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類(lèi)型:線(xiàn)性結(jié)構(gòu)與非線(xiàn)性結(jié)構(gòu)。線(xiàn)性表、棧與隊(duì)列、線(xiàn)性鏈表都是線(xiàn)性結(jié)構(gòu),而二叉樹(shù)是非線(xiàn)性結(jié)構(gòu)。

  (3)下面關(guān)于完全二叉樹(shù)的敘述中,錯(cuò)誤的是_________。

  A)除了最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值

  B)可能缺少若干個(gè)左右葉子結(jié)點(diǎn)

  C)完全二叉樹(shù)一般不是滿(mǎn)二叉樹(shù)

  D)具有結(jié)點(diǎn)的完全二叉樹(shù)的深度為[log2n]+1

  答案:B

  評(píng)析:滿(mǎn)二叉樹(shù)指除最后一層外每一層上所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)的二叉樹(shù)。完全二叉樹(shù)指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干子結(jié)點(diǎn)(葉子結(jié)點(diǎn))的二叉樹(shù)。

  C語(yǔ)言筆試題答案篇

  (1)結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是_________。

  A)程序的規(guī)模B)程序的易讀性

  C)程序的執(zhí)行效率D)程序的可移植性

  答案:B

  評(píng)析:結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進(jìn)行逐步求精、程序證明和測(cè)試,以保證程序的正確性。

  (2)在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是________。

  A)概要設(shè)計(jì)B)詳細(xì)設(shè)計(jì)C)可行性分析D)需求分析

  答案:D

  評(píng)析:需求分析是對(duì)待開(kāi)發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫(xiě)軟件規(guī)格說(shuō)明書(shū)及初步的用戶(hù)手冊(cè),提交評(píng)審。

  (3)數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是_________。

  A)控制流B)加工C)數(shù)據(jù)存儲(chǔ)D)源和潭

  答案:A

  評(píng)析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭。

  (4)軟件需求分析一般應(yīng)確定的是用戶(hù)對(duì)軟件的__________。

  A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求

  答案:D

  評(píng)析:軟件需求分析中需要構(gòu)造一個(gè)完全的系統(tǒng)邏輯模型,理解用戶(hù)提出的每一功能與性能要求,是用戶(hù)明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶(hù)對(duì)軟件的功能需求和非功能需求。

  C語(yǔ)言筆試題答案篇

  (1)下述關(guān)于數(shù)據(jù)庫(kù)系統(tǒng)的敘述中正確的是________。

  A)數(shù)據(jù)庫(kù)系統(tǒng)減少了數(shù)據(jù)冗余

  B)數(shù)據(jù)庫(kù)系統(tǒng)避免了一切冗余

  C)數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類(lèi)型的一致

  D)數(shù)據(jù)庫(kù)系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

  答案:A

  評(píng)析:由數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲(chǔ)空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。

  (2)關(guān)系表中的每一橫行稱(chēng)為一個(gè)________。

  A)元組B)字段C)屬性D)碼

  答案:A

  評(píng)析:在關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系模型采用二維表來(lái)表示,簡(jiǎn)稱(chēng)“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱(chēng)為元組。

  (3)數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是________。

  A)概念設(shè)計(jì)和邏輯設(shè)計(jì)B)模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)

  C)內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D)結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

  答案:A

  評(píng)析:數(shù)據(jù)庫(kù)設(shè)計(jì)可分為概念設(shè)計(jì)與邏輯設(shè)計(jì)。概念設(shè)計(jì)的目的是分析數(shù)據(jù)間內(nèi)在語(yǔ)義關(guān)聯(lián),在此基礎(chǔ)上建立一個(gè)數(shù)據(jù)的抽象模型。邏輯設(shè)計(jì)的主要工作是將ER圖轉(zhuǎn)換為指定的RDBMS中的關(guān)系模型。

  (4)請(qǐng)讀程序:

  #include

  main

  {

  int a;float b,c;

  scanf(“%2d%3P%4f’,&a,&b,&C);

  printf(” a=%d,b=%ec。%f ”,a,b,C);

  }

  若運(yùn)行時(shí)從鍵盤(pán)上輸入9876543210l,則上面程序的輸出結(jié)果是________。

  A)a=98,b=765,c=432 1

  B)a=1 0,b=432,c=8765

  C)a=98,b=765.000000,c=432 1.000000

  D)a=98,b=765.0,c=432 1.0

  答案:C

  評(píng)析:scanf把用戶(hù)從鍵盤(pán)錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實(shí)型變量b,把第6、7、8、9位存入單精度實(shí)型變量c,用戶(hù)錄入的第10位被scanf遺棄。這時(shí)變量a、b、c的值分別為:98、765.000000、4321.000000。

  (5)一個(gè)良好的算法由下面的基本結(jié)構(gòu)組成,但不包括__________。

  A)順序結(jié)構(gòu)B)選擇結(jié)構(gòu)C)循環(huán)結(jié)構(gòu)D)跳轉(zhuǎn)結(jié)構(gòu)

  答案:D

  評(píng)析:1966年,Bohra和Jacopini提出了以下三種基本結(jié)構(gòu),用這三種基本結(jié)構(gòu)作為表示一個(gè)良好算法的基本單元:1、順序結(jié)構(gòu);2、選擇結(jié)構(gòu);3、循環(huán)結(jié)構(gòu)。

  (6)請(qǐng)選出以下程序的`輸出結(jié)果________。

  #include

  sub(x,y,z)

  int x,y,星符號(hào)z:

  {星符號(hào)z變化,所以此次函數(shù)被調(diào)用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化,其值為-5-7=-12,在sub(a,b,&C)后,c的值發(fā)生變化,其值為-12-(-5)=-7。

  (7)下面程序在屏幕上的輸出是________。

  main

  {

  printf(”ab c”);

  }

  A)ab c B)a c C)abc D)ab c

  答案:B

  評(píng)析:c語(yǔ)言中允許使用一種特殊形式的字符常量,、就是以一個(gè)“”開(kāi)頭的字符序列,這樣的字符稱(chēng)為“轉(zhuǎn)義字符”。常用的轉(zhuǎn)義字符有: ,換行;,水平制表;,退格;,回車(chē)。

  (8)若x是整型變量,pb是基類(lèi)型為整型的指針變量,則正確的賦值表達(dá)式是_______。

  A)pb=&x; B)pb=x; C)星符號(hào)pb=星符號(hào)、/)還包括自增自減運(yùn)算符(++、–),在c語(yǔ)言解析表達(dá)式時(shí),它總是進(jìn)行貪婪咀嚼,這樣,該表達(dá)式就被解析為i++ ++ +i,顯然該表達(dá)式不合c語(yǔ)言語(yǔ)法。

  (10)若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)整型變量的動(dòng)態(tài)存儲(chǔ)單元

  int星符號(hào)int) D)(int星符號(hào))

  答案:D

  評(píng)析:不論p是指向什么類(lèi)型的指針變量,都可以通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換的方法使之類(lèi)型一致,強(qiáng)制類(lèi)型轉(zhuǎn)換的格式為(數(shù)據(jù)類(lèi)型+)。

  (11)下面程序輸出的結(jié)果是__________。

  main

  {

  int i=5,J=9,x;

  x=(I==j?i:(j=7));

  printf(” %d,%d”,I,J);

  }

  A)5,7 B)5,5 C)語(yǔ)法錯(cuò)誤D)7,5

  答案:A

  評(píng)析:條件表達(dá)式的一般形式為:表達(dá)式I?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式l的值為假,則求解表達(dá)式3。本題中先判斷i==j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。

【C語(yǔ)言經(jīng)典例題及答案】相關(guān)文章:

C語(yǔ)言入門(mén)例題講解07-10

C語(yǔ)言習(xí)題及答案02-26

C語(yǔ)言試題及答案07-26

C語(yǔ)言筆試題及答案05-13

C語(yǔ)言模擬試題及答案06-17

C語(yǔ)言模擬試題及答案03-26

C語(yǔ)言練習(xí)題及答案03-11

C語(yǔ)言測(cè)試題及答案07-03

C語(yǔ)言測(cè)試試題及答案08-02