<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            C語言

            C語言試題訓練

            時間:2025-04-02 05:31:22 永恒 C語言 我要投稿

            C語言試題訓練

              引導語:現如今,C語言的應用已經越來越廣泛,學習的人也越來越多,以下是小編整理的C語言試題訓練,歡迎參考閱讀!

            C語言試題訓練

              C語言試題訓練 篇1

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

              1.設有以下定義:

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

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

              則以下能夠正確表示數組元素a[1][2]的表達式是 。

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

              B) *(*(p + 5))

              C) (*ptr + 1)

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

              2.有如下程序片段:

              int i = 0;

              while(i++ <= 2);

              printf("%d", i);

              則正確的執行結果是:

              A) 2 B) 3

              C) 4 D) 無結果

              3.合法的數組定義是 。

              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.設有如下定義:

              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++ )的輸出結果是 ,i的值是 。

              A) -3 4 B) -4 4

              C) -4 3 D) -3 3

              二、寫出下列程序的運行結果。(10分,每題2分)

              1.

              #include

              main()

              {

              int x, y;

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

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

              }

              程序運行時輸入:2345678↙

              則程序運行結果是:

              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' ');

              }

              }

              運行結果是:

              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;

              }

              程序運行結果是:

              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;

              }

              }

              程序運行結果:

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

              }

              運行結果是:

              三、閱讀程序,在標有下劃線的空白處填入適當的表達式或語句,使程序完整并符合題目要求。(8分,每空1分)

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

              #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("輸入數組a: ");

              InputArray(a, n);

              Sort(a, n);

              printf("打印排序后的數組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. 下面程序的功能是從鍵盤輸入一行字符,統計其中有多少單詞。假設單詞之間以空格分開。[提示:判斷是否有新單詞出現的方法是------當前被檢驗的字符不是空格,而前一被檢驗字符是空格,則表示有新單詞出現。]

              #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個程序中,共有16處錯誤(包括語法錯誤和邏輯錯誤),請找出其中的錯誤,并改正之。(30分,每找對1個錯誤,加1分,每修改正確1個錯誤,再加1分。只要找對15個即可,多找不加分。)

              1.在給定的一組書名中,從鍵盤任意輸入一個書名(書名可以有空格)。若找到,則打印該書名,否則打印”沒找到”。

              #include

              #include

              main()

              {

              int i, findFlag=0;

              char x;

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

              "Visual C", "Visual Basic" };

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

              gets(x);

              while(i<6 && !findFlag)

              {

              if (x == str[i])

              {

              findFlag = 1;

              }

              i++;

              }

              if (findFlag)

              {

              printf("%s ", x);

              }

              else

              {

              printf("沒找到! ");

              }

              }

              2.打印100~200之間的所有素數。

              #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.從鍵盤輸入任意一個學生的`學號,在班級學生表中(學生表的學號是按升序排序的,且班級最多30人 ) 查找該學號是否存在,存在打印其考試成績,否則打印“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("輸入班級實際人數:");

              scanf("%d",&n);

              printf("輸入學生學號和成績");

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

              {

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

              }

              printf("輸入待查找學號:");

              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.該程序的作用是將一個字符串中的元音字母復制到另一個字符串,然后輸出。

              #include

              main()

              {

              char str1[80], str2[80];

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

              gets(str1);

              Cpy(str1[], str2[]);

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

              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.編程計算:1!+3!+5!+…+(2n-1)!的值。其中,n值由鍵盤輸入。(14分)

              2. 不用標準庫函數strlen,自己編寫一個函數MyStrlen,實現計算字符串長度的功能。要求在主函數中輸入一個字符串(可以讀入空格),并在主函數中打印字符串的長度。(14分)

              請按以下給定的函數原型編寫程序:

              int MyStrlen(char str[]);

              或

              int MyStrlen(char *p);

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

              3.編寫一個函數,求最大值及最大值所在元素的下標。要求在主函數中通過鍵盤任意輸入一組數(最多10個),且在主函數中打印最大數及最大數元素的下標。(14分)

              請按以下給定的函數原型編寫程序:

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

              或

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

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

              C語言試題訓練 篇2

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

              2、 不屬于C語言基本數據類型的是( )

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

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

              A). 宏不存在類型問題,宏名無類型,它的參數也無類型 B). 宏替換不占用運行時間

              C). 宏替換只是字符串的簡單替代

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

              4、 C語言中,″xfds″在內存中占用的字節數是( )

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

              5、 設int x;則執行printf(″%x ″,~x^x);的結果是( )

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

              6、 對于while( )

              A).用條件控制循環體的`執行次數 B).循環體至少要執行一次

              C).循環體有可能一次也不執行 D).循環體中可以包含若干條語句

              7、 執行下列語句后輸出的結果是( )

              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、 設int a=9,b=20;則printf(″%d,%d ″,a--,--b);的輸出結果是( )

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

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

              A).x數組的長度等于y數組的長度 B).x數組的長度大于y數組的長度

              C).x數組的長度少于y數組的長度 D).x數組與y數組的存儲區域相同

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

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

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

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

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

              int n;

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

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

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

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

              13、 為了連接兩個字符串s1與s2,應當使用( )

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

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

              A).位與運算 B).邏輯與運算 C).取指針內容 D).取變量地址

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

              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、 設有定義: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、 數據-54.78在文本文件中占用的字節個數是( )

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

              19、 在宏定義#define p(r) 3.14*r中,請問宏名是( )

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

              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語言試題訓練】相關文章:

            C語言程序考試加分訓練試題05-21

            C語言試題01-23

            C語言試題08-02

            C語言試題04-26

            C語言考點試題03-01

            C語言練習試題07-01

            C語言程序試題04-26

            C語言試題及答案07-26

            c語言經典筆試題05-24

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看