亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語(yǔ)言 百文網(wǎng)手機(jī)站

C語(yǔ)言試題訓(xùn)練

時(shí)間:2022-10-20 12:51:36 C語(yǔ)言 我要投稿

C語(yǔ)言試題訓(xùn)練

  引導(dǎo)語(yǔ):現(xiàn)如今,C語(yǔ)言的應(yīng)用已經(jīng)越來(lái)越廣泛,學(xué)習(xí)的人也越來(lái)越多,以下是小編整理的C語(yǔ)言試題訓(xùn)練,歡迎參考閱讀!

C語(yǔ)言試題訓(xùn)練

  C語(yǔ)言試題訓(xùn)練 篇1

  一、單項(xiàng)選擇題:(10分,每題2分)

  1.設(shè)有以下定義:

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

  int (*ptr)[3] = a, *p = a[0];

  則以下能夠正確表示數(shù)組元素a[1][2]的表達(dá)式是 。

  A) *((*ptr + 1)[2])

  B) *(*(p + 5))

  C) (*ptr + 1)

  D) *(*(a + 1) + 2)

  2.有如下程序片段:

  int i = 0;

  while(i++ <= 2);

  printf("%d", i);

  則正確的執(zhí)行結(jié)果是:

  A) 2 B) 3

  C) 4 D) 無(wú)結(jié)果

  3.合法的數(shù)組定義是 。

  A) int a[] ="language";

  B) int a[5] = {0,1,2,3,4,5};

  C) char a ="string";

  D) char a[] = {"0,1,2,3,4,5"};

  4.設(shè)有如下定義:

  struct st

  {

  int a;

  float b;

  }st1, *pst;

  若有pst = &st1; 則下面引用正確的是________。

  A) (*pst.st1.b) B) (*pst).b

  C) pst->st1.b D) pst.st1.b

  5.如果int i = 3, 則printf("%d", -i++ )的輸出結(jié)果是 ,i的值是 。

  A) -3 4 B) -4 4

  C) -4 3 D) -3 3

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

  1.

  #include

  main()

  {

  int x, y;

  scanf("%2d%*2s%1d", &x, &y);

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

  }

  程序運(yùn)行時(shí)輸入:2345678↙

  則程序運(yùn)行結(jié)果是:

  2.

  #include

  main()

  {

  int i = 0;

  while(i < 3)

  {

  switch(i++)

  {

  case 0:

  printf("fat");

  break;

  case 1:

  printf("hat");

  case 2:

  printf("cat");

  default:

  printf("Oh no! ");

  }

  put' ');

  }

  }

  運(yùn)行結(jié)果是:

  3.

  #include

  int Square(int i);

  main()

  {

  int i=0;

  i = Square(i);

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

  {

  static int i = 1;

  i += Square(i);

  printf("%d ", i);

  }

  printf("%d ", i);

  }

  int Square(int i)

  {

  return i*i;

  }

  程序運(yùn)行結(jié)果是:

  4.

  #include

  void inv(int *p, int n);

  main()

  {

  int i;

  int a[10]={13,7,9,11,0,6,7,5,4,2};

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

  {

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

  }

  printf(" ");

  inv(a,10);

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

  {

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

  }

  }

  void inv(int *p, int n)

  {

  int *i, *j, m = (n - 1) / 2, t;

  j = p + n - 1;

  for(i = p; i <= p + m; i++, j--)

  {

  t = *i; *i = *j; *j = t;

  }

  }

  程序運(yùn)行結(jié)果:

  5.

  #include

  struct name

  {

  char first[20];

  char last[20];

  };

  struct beam

  {

  int limbs;

  struct name title;

  char ty[30];

  };

  main()

  {

  struct beam *pb;

  struct beam deb = {6, {"Berbnazel","Gwolkapwolk"},

  "Arcturan"};

  pb=&deb;

  printf("%d ", deb.limbs);

  printf("%s ", pb->ty);

  printf("%s ", pb->ty + 2);

  }

  運(yùn)行結(jié)果是:

  三、閱讀程序,在標(biāo)有下劃線的空白處填入適當(dāng)?shù)谋磉_(dá)式或語(yǔ)句,使程序完整并符合題目要求。(8分,每空1分)

  1.下面這個(gè)程序的功能是對(duì)含有n個(gè)元素(最多10個(gè))的一維數(shù)組按升序進(jìn)行排序。

  #include

  #define ARRAY_SIZE 10

  void Sort(int a[], int n);

  void InputArray(int a[],int n);

  void PrintArray(int a[],int n);

  main()

  {

  int a[ARRAY_SIZE], n;

  printf("Input array lenth n<=10: ");

  scanf("%d", &n);

  printf("輸入數(shù)組a: ");

  InputArray(a, n);

  Sort(a, n);

  printf("打印排序后的數(shù)組a: ");

  PrintArray(a, n);

  }

  void Sort(int a[], int n)

  {

  int i, j, p, temp;

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

  {

  p = i;

  for(j = ; j < n; j++)

  {

  if( ) p = j;

  }

  if( )

  {

  temp = a[p];

  a[p] = a[i];

  a[i] = temp;

  }

  }

  }

  void InputArray(int a[], int n)

  {

  int i;

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

  {

  ;

  }

  }

  void PrintArray(int a[], int n)

  {

  int i;

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

  {

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

  }

  printf(" ");

  }

  2. 下面程序的功能是從鍵盤(pán)輸入一行字符,統(tǒng)計(jì)其中有多少單詞。假設(shè)單詞之間以空格分開(kāi)。[提示:判斷是否有新單詞出現(xiàn)的方法是------當(dāng)前被檢驗(yàn)的字符不是空格,而前一被檢驗(yàn)字符是空格,則表示有新單詞出現(xiàn)。]

  #include

  main()

  {

  char str[80];

  int i, num;

  gets(str);

  if(str[0] != ' ')

  {

  num = 1;

  }

  else

  {

  num = 0;

  }

  for(i = 1 ; str[i] ; i++)

  {

  if(str[i] && str[i-1])

  {

  num++;

  }

  }

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

  }

  四、在下面給出的4個(gè)程序中,共有16處錯(cuò)誤(包括語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤),請(qǐng)找出其中的錯(cuò)誤,并改正之。(30分,每找對(duì)1個(gè)錯(cuò)誤,加1分,每修改正確1個(gè)錯(cuò)誤,再加1分。只要找對(duì)15個(gè)即可,多找不加分。)

  1.在給定的一組書(shū)名中,從鍵盤(pán)任意輸入一個(gè)書(shū)名(書(shū)名可以有空格)。若找到,則打印該書(shū)名,否則打印”沒(méi)找到”。

  #include

  #include

  main()

  {

  int i, findFlag=0;

  char x;

  char str[][13]={ "Pascal","Basic","Fortran", "Java",

  "Visual C", "Visual Basic" };

  printf("請(qǐng)輸入一個(gè)字符串:");

  gets(x);

  while(i<6 && !findFlag)

  {

  if (x == str[i])

  {

  findFlag = 1;

  }

  i++;

  }

  if (findFlag)

  {

  printf("%s ", x);

  }

  else

  {

  printf("沒(méi)找到! ");

  }

  }

  2.打印100~200之間的所有素?cái)?shù)。

  #include

  #include

  main()

  {

  int m, i ;

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

  {

  for(i = 2; i < sqrt(m) && flag; i++)

  {

  if(m%i == 0)

  flag = 0;

  }

  if(flag)

  {

  printf("%d ", m);

  }

  }

  }

  3.從鍵盤(pán)輸入任意一個(gè)學(xué)生的學(xué)號(hào),在班級(jí)學(xué)生表中(學(xué)生表的學(xué)號(hào)是按升序排序的,且班級(jí)最多30人 ) 查找該學(xué)號(hào)是否存在,存在打印其考試成績(jī),否則打印“Not find!”。

  #include

  #define ARR_SIZE 30;

  int Search( long *p, int n, long x );

  main()

  {

  long num[ARR_SIZE], x;

  float score[ARR_SIZE];

  int i, n, pos;

  printf("輸入班級(jí)實(shí)際人數(shù):");

  scanf("%d",&n);

  printf("輸入學(xué)生學(xué)號(hào)和成績(jī)");

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

  {

  scanf("%ld %f ", &num[i], &score[i]);

  }

  printf("輸入待查找學(xué)號(hào):");

  scanf("%d", &x);

  pos=Search(num, n, x);

  if ( pos + 1 )

  printf("score=%f ", score [pos]);

  else

  printf(" Not find! ");

  }

  int Search( long *p, int n, long x );

  {

  int i, flag;

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

  {

  if ( *( p+i ) == x )

  {

  flag = i;

  break;

  }

  else

  {

  flag = -1;

  }

  }

  return flag

  }

  4.該程序的作用是將一個(gè)字符串中的元音字母復(fù)制到另一個(gè)字符串,然后輸出。

  #include

  main()

  {

  char str1[80], str2[80];

  printf("輸入一個(gè)字符串:");

  gets(str1);

  Cpy(str1[], str2[]);

  printf("輸出一個(gè)字符串 ");

  puts(str2);

  }

  void Cpy(char s[],char c[])

  {

  int i, j;

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

  {

  if(s[i]= 'a'||s[i]= 'A'||s[i]= 'e'||s[i]= 'E'||

  s[i]= 'i'||s[i]= 'I'||s[i]= 'o'||s[i]= 'O'||

  s[i]= 'u'||s[i]= 'U')

  {

  s[i]=c[j];

  j++;

  }

  }

  }

  五、編程(42分)

  1.編程計(jì)算:1!+3!+5!+…+(2n-1)!的值。其中,n值由鍵盤(pán)輸入。(14分)

  2. 不用標(biāo)準(zhǔn)庫(kù)函數(shù)strlen,自己編寫(xiě)一個(gè)函數(shù)MyStrlen,實(shí)現(xiàn)計(jì)算字符串長(zhǎng)度的功能。要求在主函數(shù)中輸入一個(gè)字符串(可以讀入空格),并在主函數(shù)中打印字符串的長(zhǎng)度。(14分)

  請(qǐng)按以下給定的函數(shù)原型編寫(xiě)程序:

  int MyStrlen(char str[]);

  或

  int MyStrlen(char *p);

  注:不按給定的函數(shù)原型或使用全局變量編寫(xiě)程序不給分。

  3.編寫(xiě)一個(gè)函數(shù),求最大值及最大值所在元素的下標(biāo)。要求在主函數(shù)中通過(guò)鍵盤(pán)任意輸入一組數(shù)(最多10個(gè)),且在主函數(shù)中打印最大數(shù)及最大數(shù)元素的下標(biāo)。(14分)

  請(qǐng)按以下給定的函數(shù)原型編寫(xiě)程序:

  void Findmax(int num[], int n,int *pMaxNum, int *pMaxPos);

  或

  void Findmax(int *p, int n, int *pMaxNum, int *pMaxPos);

  注:不按給定的函數(shù)原型或使用全局變量編寫(xiě)程序不給分。

  C語(yǔ)言試題訓(xùn)練 篇2

  1、 在C語(yǔ)言中,下列標(biāo)識(shí)符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const

  2、 不屬于C語(yǔ)言基本數(shù)據(jù)類型的是( )

  A). int B). union C). char D). unsigned

  3、 下面是對(duì)宏定義的描述。不正確的是( )

  A). 宏不存在類型問(wèn)題,宏名無(wú)類型,它的參數(shù)也無(wú)類型 B). 宏替換不占用運(yùn)行時(shí)間

  C). 宏替換只是字符串的簡(jiǎn)單替代

  D). 宏替換時(shí)先檢查類型,類型一致時(shí)才可以替換

  4、 C語(yǔ)言中,″xfds″在內(nèi)存中占用的`字節(jié)數(shù)是( )

  A).3 B).4 C).5 D).6

  5、 設(shè)int x;則執(zhí)行printf(″%x ″,~x^x);的結(jié)果是( )

  A). ffffffff B). ff C). 0 D). 1

  6、 對(duì)于while( )

  A).用條件控制循環(huán)體的執(zhí)行次數(shù) B).循環(huán)體至少要執(zhí)行一次

  C).循環(huán)體有可能一次也不執(zhí)行 D).循環(huán)體中可以包含若干條語(yǔ)句

  7、 執(zhí)行下列語(yǔ)句后輸出的結(jié)果是( )

  int a=8,b=7,c=6;

  if(ac){a=c;c=b;})if(b>

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

  A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,8

  8、 設(shè)int a=9,b=20;則printf(″%d,%d ″,a--,--b);的輸出結(jié)果是( )

  A).9,19 B).9,20 C).10,19 D).10,20

  9、 設(shè)static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′′};那么( )

  A).x數(shù)組的長(zhǎng)度等于y數(shù)組的長(zhǎng)度 B).x數(shù)組的長(zhǎng)度大于y數(shù)組的長(zhǎng)度

  C).x數(shù)組的長(zhǎng)度少于y數(shù)組的長(zhǎng)度 D).x數(shù)組與y數(shù)組的存儲(chǔ)區(qū)域相同

  10、 設(shè)int i,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語(yǔ)句的輸出結(jié)果是( )

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

  printf(″%d″,x[i][2-i]);

  A).147 B).159 C).357 D).369

  11、 執(zhí)行完下列語(yǔ)句后,n的值是( )

  int n;

  for (n=0 ; n<100 ; n=2*n+1);

  A).125 B).126 C).127 D).128

  12、 有以下語(yǔ)句:int a=6;a+=a-=a*a;printf(“%d”,a);輸出結(jié)果( )

  A).–132 B).–60 C). -24 D). 0

  13、 為了連接兩個(gè)字符串s1與s2,應(yīng)當(dāng)使用( )

  A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )

  14、 設(shè)int a,*p;則語(yǔ)句p=&a;中的運(yùn)算符“&”的含義是( )

  A).位與運(yùn)算 B).邏輯與運(yùn)算 C).取指針內(nèi)容 D).取變量地址

  15、 下面輸出的結(jié)果為( )

  int a=13, b=64;

  printf(“%d ”, !a || (b>>3) ); A).13 B).64 C).1 D).0

  16、 下列定義正確的是( )

  A).enum t={a,b}x; B). enum t{1,2}x; C). enum {′+′,′-′}x; D). enum t{a,b}x;

  17、 設(shè)有定義:struct u{int a[4];float b[3]; char c[16];}aa;

  則printf(″%d ″,sizeof(aa));的輸出是( ) A).32 B).36 C).12 D).8

  18、 數(shù)據(jù)-54.78在文本文件中占用的字節(jié)個(gè)數(shù)是( )

  A).4 B).5 C).6 D).8

  19、 在宏定義#define p(r) 3.14*r中,請(qǐng)問(wèn)宏名是( )

  A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打開(kāi)一個(gè)已存在的用于修改的非空二進(jìn)制文件“hello.txt”,正確語(yǔ)句是( )

  A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" )

【C語(yǔ)言試題訓(xùn)練】相關(guān)文章:

C語(yǔ)言程序考試加分訓(xùn)練試題04-16

C語(yǔ)言試題10-05

C語(yǔ)言試題11-04

C語(yǔ)言試題(精選)04-16

C語(yǔ)言考點(diǎn)試題11-02

C語(yǔ)言程序試題11-04

C語(yǔ)言練習(xí)試題11-06

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

c語(yǔ)言經(jīng)典筆試題10-08