10道C語言筆試模擬題,來看看你掌握的怎么樣?

2021-02-19    分類: 網(wǎng)站建設(shè)

C語言

1.分析下面的C代碼,它的運(yùn)行結(jié)果可能是:

#include<stdio.h>	
int main(void)
{
 int i = 0;
 if (i = 1)
 printf("i > 0\n");
 else if (i = 0)
 printf ("i = 0\n");
 else
 printf ("i < 0\n");
 return 0;
}
  • A i > 0
  • B i = 0
  • C i < 0
  • D 使用不同的編譯器編譯運(yùn)行,結(jié)果可能不一樣

2.關(guān)于變量的聲明和定義,下面說法錯(cuò)誤的是:

  • A 一個(gè)變量可以進(jìn)行多次聲明
  • B 一個(gè)變量只能聲明一次
  • C 一個(gè)變量只能定義一次
  • D 變量的定義會(huì)給這個(gè)變量分配內(nèi)存,而聲明不會(huì)

3. 在下面對(duì)一些變量的聲明中,有可能是定義語句的是:

  • A extern int i;
  • B extern int a[20];
  • C extern struct student stu;
  • D int i;

4.閱讀下面的代碼,可能的運(yùn)行結(jié)果是

#include <stdio.h>	 
int main (void)
{
 int a = -3;
 unsigned int b = 3;
 if (a < b)
 printf("a < b\n");
 else
 printf("a > b\n");
 return 0;
}
  • A a < b
  • B a > b
  • C 在不同的編譯器下運(yùn)行結(jié)果可能不一樣

5. 關(guān)于數(shù)組指針的使用,下面哪一條賦值語句可能會(huì)有問題?

#include <stdio.h>	 
int main (void)
{
 int a[5] = {1,2,3,4,5};
 int *p = NULL;
 return 0;
}
  • A p = a;
  • B p = &a[4];
  • C p = &a;
  • D p = &a[0];

6. 在sub.c和main.c中有如下程序代碼,使用gcc編譯運(yùn)行,結(jié)果是?

//sub.c
int i;
void print_val(void)
{
 printf ("%d\n", i);
}
//main.c
void print_val(void);
int i = 10;
int main(void)
{
 printf("%d\n", i);
 print_val()
}
  • A 0 10
  • B 10 0
  • C 0 0
  • D 10 10

C語言

7.在main.c和sub.c中分別有如下代碼,編譯運(yùn)行,結(jié)果可能是?

//sub.c
char i;
void print(void)
{
 printf("%d", sizeof(i));
}
//main.c
void print(void);
int i;
int main(void)
{
 printf("%d", sizeof(i));
 print()
 return 0;
}
  • A 1 4
  • B 1 1
  • C 4 1
  • D 4 4

8. 編譯下面的main.c和sub.c并運(yùn)行,可能的運(yùn)行結(jié)果是:

//sub.c
int i = 10;
void print(void)
{
 printf("%d", i);
}
//main.c
int i = 20;
void print(void);
int main(void)
{
 printf("%d", i);
 print()
 return 0;
}
  • A 10 20
  • B 10 10
  • C 20 20
  • D 編譯錯(cuò)誤

9.在下面的代碼中,我們定義了一個(gè)整型數(shù)組a[5],如果想把數(shù)組元素a[2]的值打印出來,下面那條語句可能會(huì)打印錯(cuò)誤?

#include<stdio.h>	
int main(void)
{
 int a[5] = {1,2,3,4,5};
 int *p = a;
 return 0;
}
  • A printf("%d\n", *(p+2);
  • B printf("%d\n", *(&a+2));
  • C printf("%d\n", 2[p]);
  • D printf("%d\n", 2[a]);

10. 運(yùn)行下面的代碼,運(yùn)行結(jié)果可能是:

#include<stdio.h>	
int main(void)
{
 int i = 5;
 printf("%d", i);
 {
 int i;
 i = 10;
 printf("%d", i);
 }
 printf("%d", i);
 return 0;
}
  • A 5 10 10
  • B 5 5 5
  • C 5 10 5
  • D 10 10 10

好了,小伙伴們都答出來了嗎? 快在評(píng)論區(qū)說出你的答案吧!

分享題目:10道C語言筆試模擬題,來看看你掌握的怎么樣?
文章出自:http://www.muchs.cn/news37/101737.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站建設(shè)、面包屑導(dǎo)航、小程序開發(fā)網(wǎng)站制作、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化