c语言基础选择题10道

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: c语言基础选择题10道

 (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

1. 以下选项中可用作 C 语言合法用户标识符的是(c)

A. 2a

B. -abc

C. void

D. _123

解析:c语言合法标识符规则是

1.标识符的第一个字符必须是字母(a~z或A~Z)或下划线(_);

2、后面跟的字符是由任意字母、下划线(_)、数字组成;

3、标识符中的大小写字母是有区别的,代表不同含义;

4、标识符不能是关键字。

2.运算符--, %, !=中优先级由高到低排序正确的是( A )

A. --, %, !=

B. %, !=, --

C. !=, --, %

D. --, != ,%解析:

3. 以下程序的输出结果是:(A)

void main() {
int x=10,y=10;
printf("%d %d\n",x - -, - - y);
}

A. 10 9

B. 10 10

C. 9 9

D. 9 10

解析:--后置表示为先-后显示,--前置表示先显示后--

4.以下程序中,while循环的循环次数是(A)

void main( ){
int i=0;
while(i<10){
if(i<1) continue;
if(i==5) break;
i++;
}
.....

A. 死循环,不能确定次数

B. 10

C. 1

D. 6

解析: 在C语言中,continue的用法是:if中为真就执行continue,跳出此处循环,进行下一次循环,如果那点换成是break就直接退出循环了,即使没有循环完,也是不再循环,直接退出循环结构。

在本题中i=0,经过continue循环后一直在while中循环,且i一直为0

5. 以下能对一维数组a进行初始化的语句是(A)

A. int a[5]={0,1,2};

B. int a{5}={10*1};

C. int a[5]=(0,1,2,3,4);

D. int a[5]={};

解析:数组内部用{}表示

6. 设有定义: int x[2][3];则以下关于二维数组x的叙述错误的是(C)

A. 元素x[0]可看作是由3个整型元素组成的一维数组

B. x[0]和x[1]是数组名,分别代表一个地址常量

C. 可以用x[0]=0的形式为数组所有元素赋初值0

D. 数组x可以看作是由x[0]和x[1]两个元素组成的一维数组

解析: 在二维数组中,不能用x[0]=0这样的赋值语句,x[0]代表一个一维数组

7. 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是:(A)

A.  *p=*&j;

B.  i=*p;

C.  i=&j;

D.  i=**p;

解析:在声明中 int i, j=2, *p=&i; 定义了i,j 两个整数型变量,并且j的值为2。后面又定义了一个整数型指针p。只有声明变量里面的*才表示p是一个指针,与后面的*不一样。所以这里的p是一个指针,后面的&i表示取i的地址。于是p就得到了i的地址。p指向i,所以若要把j赋值给i,有两种方法。一种是直接赋值,另一种是用指向i的p间接赋值

A选项:右边的*&j表示先取j的地址,再根据j的地址去到j的内容,等价于j本身

B选项:*p是取p的内容,也就是取到了i的值。然而i并没有赋值。没有初始化的i里面的内存可能是其他程序使用过的,里面的东西是随机的。而且把i赋值给i也不对。

C选项:把j的地址赋值给i也是不对的。一是类型不匹配,指针不能直接赋值给整数型变量。所以编译会产生未强制类型转换就赋值的警告。二是不符合把j赋值给i的题意。运行后i得到了j的地址,但以整数的格式解读出来,得到的数字是看不出来有什么意义的。

D选项:i=**p; 语法错误,编译无法通过。*p先取到了p的内容,即得到了类型为整数型的i的内容。而*只能对指针操作取出指向指针。*p已经是整数型无法再解引用了(解引用就是取内容)。

8. 以下程序的运行后输出的结果是_____D____.

#include<stdio.h>
void main()
{
         int x=0,a=0,b=0;
         switch(x)
         {
             case 0: b+a;
             case 1: ++a;
             case 2: a--;b--;
           }
           printf("a=%d,b=%d\n",a,b);
}

A. a=0,b=1

B. a=-1,b=-1

C. a=-1,b=0

D. a=0,b=-1

9. 下面程序的输出结果是______C____.

#include<stdio.h>
void main( )
{
       int a[3][3]={1,2,3,4,5,6,7,8,9};
       int i;
       for(i=0; i<3; i++)
       {
            printf("%d  ",a[2-i][i]);
       }
}

A. 5 9 1

B. 3 5 7

C. 7 5 3

D. 1 5 9

解析:

:int arr[3][3]={1,2,3

                       4,5,6

                       7,8,9}

第一次打印a[2][0],第二次a[1][1],a[0][2],对应的二维数组方便为7,5,3

10. 以下程序执行时,给变量x输入10,程序的输出结果是__C_____.

int fun(int n)
{
      if(n==1)   return 1;
      else return (n+fun(n-1));
}
void mainJ()
{
       int  x;
       scanf("%d",&x);
       x=fun(x);
       printf("%d\n",x);
}

A. 65

B. 45

C. 55

D. 54

解析:10+9+8+7+6+5+4+3+2+1=55

相关文章
|
4月前
|
C语言
C语言—每日选择题—Day60
C语言—每日选择题—Day60
|
4月前
|
编译器 C语言
C语言—每日选择题—Day61
C语言—每日选择题—Day61
|
4月前
|
编译器 C语言
C语言—每日选择题—Day57
C语言—每日选择题—Day57
|
4月前
|
C语言
C语言—每日选择题—Day56
C语言—每日选择题—Day56
|
4月前
|
编译器 C语言 C++
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(下)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
45 2
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(下)
|
4月前
|
算法 C语言 C++
从C语言到C++_14(vector的常用函数+相关选择题和OJ题)(中)
从C语言到C++_14(vector的常用函数+相关选择题和OJ题)
141 1
|
4月前
|
算法 编译器 C语言
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(上)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
38 3
|
4月前
|
编译器 C语言 C++
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题(中)
从C语言到C++⑥(第二章_类和对象_中篇_续)大练习(日期类)+笔试选择题
38 1
|
4月前
|
存储 编译器 C语言
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题(下)
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题
36 0
|
4月前
|
Java 编译器 定位技术
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题(中)
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题
35 0