C语言易错提醒选择题精选

Ⅰ  易错题

1.设有double p;,为变量p声明一个引用名称rp,则定义语句为 double& rp=p;

2.已知‘A’一‘Z’的ASCII码为65—90,当执行“char ch=14*5+2;cout<<ch<<endl;”语句序列后得到的输出结H   ,72对应ASCII码中的字符’H’

3.变量分为全局和局部两种,____变量没有赋初值时,其值是不确定的. 局部变量没有赋初值时,其值是不确定的。

4. 如果要把PI声明为值为3.14159类型为双精度实数的符号常量,该声明语句是___。

可以使用C++中的const关键字来声明一个符号常量,其语法为:const 数据类型 常量名 = 常量值;

const double PI = 3.14159;

5. 现在有以下语句:    struct MyBitType     {  char a[3];        int b[3];        float c[2];       };//int占四个字节     int sz=sizeof(MyBitType); 则执行后,变量sz的值将得到(   )。 A、16  B、8      C、27    D、31

执行后,变量sz的值将得到B、8。 MyBitType中有三个char类型,占用3个字节;三个int类型,占用12个字节;两个float类型,占用8个字节。所以总共占用23个字节,但由于内存对齐的原因,需要将其舍入为8的倍数,所以sz的值为8。

6.结构体变量S实际所占内存的大小为(    )字节。 A、sizeof(S) B、strlen(S) C、结构体中最长成员的长度       D、结构体中最短成员的长度

答案是A、sizeof(S)。在C语言中,可以使用sizeof运算符来计算结构体变量所占的内存大小,其返回值单位为字节。而strlen函数是用来计算字符串长度的,不适用于计算结构体变量大小。结构体中最长成员的长度和最短成员的长度也不能代表整个结构体变量所占内存的大小。

7.在函数说明时,下列( )项是不必要的。 A、函数的类型 B、函数参数类型和名字 C、函数名字 D、返回值表达式

在函数说明时,不必要提供函数的类型,因为已经确定为函数类型。因此选项A不必要。

8.下列标识符中,( )不是局部变量。 A、register类 B、外部static类 C、auto类 D、函数形参

A、register类、C、auto类和D、函数形参都是局部变量,只存在于它们所在的函数或代码块中。

B、外部static类则是全局变量,但是其作用域被限定在定义该变量的文件内,不同于一般的全局变量。

9.C++中的组合符号是“::”,它被称为作用域解析符,用于指定命名空间、类、结构体、枚举、函数等的作用域。具体来说,使用“::”可以访问命名空间中的成员,类中的静态成员,类的成员函数和全局作用域中的函数。

例如,如果有一个名为MyNamespace的命名空间,其中包含一个名为MyFunction的函数和一个名为MyClass的类,我们可以使用“::”来访问它们的作用域:

MyNamespace::MyFunction(); // 访问命名空间中的函数
MyNamespace::MyClass::MyStaticMember; // 访问类中的静态成员
MyNamespace::MyClass myObject; // 创建类对象
myObject.MyMemberFunction(); // 调用对象的成员函数

Ⅱ    C语言基础选择题精选 

1、以下说法中正确的是(C)(2分)

A、C语言程序总是从第一个的函数开始执行

B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

 2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分)

A、有零个或多个输入      

B、有零个或多个输出

C、有穷性

D、可行性

 3、以下选项中,不合法常量的是 (B)(2分)

A、1.234e04  B、1.234e0.4  

C、1.234e+4  D、1.234e0

 4、C语言中最简单的数据类型包括(B)(2分)

A、整型、实型、逻辑型    B、整型、实型、字符型

C、整型、字符型、逻辑型   D、整型、实型、逻辑型、字符型  

5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是 (D)(2分)

A、 10>=a>=0  B、 a>=0 and a<=10

C、 a>=0||a<=10 D、 a>=0&&a<=10

 6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)

A、 6.500000       B、 6         

C、 5.500000           D、 6.000000

 7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 (B)(2分)

A、 INPUT x、y、z;  B、 scanf("%d%d%d",&x,&y,&z);  

C、 scanf("%d%d%d",x,y,z);  D、 read("%d%d%d",&x,&y,&z);  

8、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)

A、 0  B、 0.5  

C、 1  D、 2

 9、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(  B   )。      (2分)

A、A B、a

C、Z D、z

 10、设 int  x=1, y=1; 表达式(!x||y--)的值是(  B  )。(2分)

A、0  B、1 C、2 D、-1

11.执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“%d %d %d\n”,k,a,b);后的输出结果是(  D ) 。              (2分)

A、1 0 4  B、1 0 3  

C、0 0 3  D、0 0 4  

12、程序段   int  x=3;   do  { printf(“%d”,x-=2);  }   while (!(--x));的输出结果是(   C  )。(2分)

A、1  B、3  0 C、1  -2 D、死循环

15、语句int k=1; while (k++<10);执行后,变量k的值是(  B )。(2分)

A、10  B、11 C、9  D、无限循环,值不定

 

16、程序 int i,sum;  for(i=1;i<=3;sum++)sum+=i;   printf(“%d\n”,sum); 的执行结果是(  C   )。(2分)

A、6  B、3 C、不确定 D、0

 

17、以下对二维整形数组a的正确说明是(   C)。(2分)

A、int a[3][]; B、float a(3,4);

C、double a[1][4]; D、float a(3)(4)

 

18、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是(B   )。 (2分)

A、s+1  B、s++  

C、&s[0]+1  D、&s[1]

19、对两个字符数组a和b进行初始化char a[ ]="ABCDEF";  char  b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是(D   ) 。 (2分)

A、a与b数组完全相同 B、a与b长度相同   

C、a和b中都存放字符串 D、a数组比b数组长度长

 

20、有说明:char *language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"};则表达式*language[1]>*language[2]比较的是( A )

A、字符B和字符P              B、字符串FORTRAN和字符串BASIC

C、字符F和字符B              D、字符串BASIC和字符串PASCAL

21、C语言程序由函数组成,它的(  B)。(2分)

A、主函数必须在其它函数之前,函数内可以嵌套定义函数

B、主函数可以在其它函数之后,函数内不可以嵌套定义函数

C、主函数必须在其它函数之前,函数内不可以嵌套定义函数

D、主函数必须在其它函数之后,函数内可以嵌套定义函数

 22、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是( D )。(2分)

A、extern  B、registerC、auto D、static

 23、已知:int a[]={1,2,3,4,5,6},*p=a;则值为3的表达式是 (   A  )。            .(2分)

A、p+=2,*(p++)         B、p+=2,*++p        

C、p+=3,*p++       D、p+=2,++*p

 

24、设有说明语句“struct stu{  int a;  float b;}stutype;”,则叙述不正确的是(C )(2分)

A、struct是结构体类型的关键字。 B、struct stu是用户定义的结构体类型。

C、stutype是用户定义的结构体变量名。 D、a和b都是结构体变量。

25、下列关于文件指针的描述中,错误的是(D )(2分)

A、文件指针是由文件类型FILE定义的。 B、文件指针是指向内存某个单元的地址值。

C、文件指针是用来对文件操作的标识。 D、文件指针在一个程序中只能有一个。

26、以下叙述中正确的是(B)(2分)

 A、C语言的源程序不必通过编译就可以直接运行

 B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令

 C、C源程序经编译形成的二进制代码可以直接运行

 D、C语言中的函数不可以单独进行编译

27、以下叙述中正确的是 (C)(2分)

 A、用C语言实现的算法必须要有输入和输出操作

 B、用C语言实现的算法可以没有输出但必须要有输入

 C、用C程序实现的算法可以没有输入但必须要有输出

 D、用C程序实现的算法可以既没有输入也没有输出

28、C语言中, 下列字符常量合法的是(A)(2分)

 A、'\t'  B、"A"  C、65  D、A

 

29、下列关于赋值运算符的表述中,错误的是(C)(2分)

 A、赋值运算符优先级高于逗号运算符

 B、赋值运算符的结合性是从左至右

C、赋值运算符是双目运算符

 D、赋值运算符可在表达式中连用

 

31、以下不是关键字的是(C)(2分)

 A、continue B、char C、If D、default

32、设x,y为浮点型变量,合法赋值语句是(A)(2分)

 A、x=8+y;   B、(float)3 ;     C、y=(x%2)/10 ;    D、*x=10;

 

33、已定义ch为字符型变量,以下赋值语句中错误的是(B)(2分)

 A、 ch='\';     B、 ch=62+3;      C、 ch=' ';     D、 ch='\xaa';

 

38、c语言中(  D  )。(2分)

 A、不能使用do-while语句构成的循环

 B、do-while语句构成的循环必须用break语句才能退出

 C、do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环            D、do—while语句构成的循环,当while语句中的表达式值为零时结束循环

39、设j为int型变量,则for(j=10;j>3;j--) {if (j%3)  j--; --j;--j;printf(“%d    ”,j); }的执行结果是(  A  )。  (2分

A、7    4B、4    7 C、5    6D、1    3

 

41、以下正确的定义语句是(  D )。(2分)

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

 B、float x[3][]={{1},{2},{3}};

C、long b[2][3]={{1},{1,2},{1,2,3}};

 D、double y[][3]={0};

43、在C语言中,引用数组元素时,其数组下标的数据类型允许是( C )。(2分)

 A、整型常量

 B、整型表达式

C、整型常量或整型表达式

 D、任何类型的表达式

 

44、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( B  )。(2分)

 A、2   B、3    C、4     D、无确定值

int *f()表示这个函数的功能是:返回一个地址.

int(*f)():表示 这是一个函数的指针.它要指向一个函数才能有用.指向一个函数之后可以用它来代替该函数.之后使用这个指针相当于使用该函数.

int *a[];是一个指针数组啦...表示数组中的每一个元素都是一个指针,可以指向一个int类型的数值.

int (*a)[]这是一个指向多维数组的指针变量.

46、函数调用结束后,形式参数(C  )。(2分)

 A、继续占用相同大小的内存B、占用的内存减小 C、释放内存 D、不确定

47、已知:int a,*p=&a;则下列函数调用中错误的是( D    )。(2分)

 A、scanf("%d",&a) B、scanf("%d",p); C、printf("%d",a);   D、printf("%d",p);

48、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C )(2分)

 A、1,0 B、1,1 C、0,1D、0,0

 

49、语句“fseek(fp,100L,2);”的功能是(C )(2分)

 A、将fp所指向文件的位置指针移至距文件首100个字节。  

B、将fp所指向文件的位置指针移至距文件尾100个字节。

  C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。  

D、将fp所指向文件的位置指针移至距当前位置 指针的文件尾方向100个字节。

50、以下叙述错误的是(D)(2分)

 A、一个C程序总是从main函数开始执行的;

 B、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上;

 C、每个语句和数据定义的最后必须有一个分号;

 D、C语言本身有输入输出语句。

52、下面不正确的字符串常量是(A)(2分)

 A、 'abc'    B、 "12'12"      C、 "0"      D、 "  "

53、已知各变量的类型说明如下:int k,a,b=1; unsigned long w=5;则以下不符合C语言语法的表达式是(A)(2分)

 A、 k=b+2=w    B、 w+= -2   C、 k=(a=2,b=3,a+b)     D、 a+=a-=(b=4)*(a=3)

 

54、执行下列语句int x=10,y=3;printf("%d\n",y=x/y);后的输出是(C)(2分)

 A、 0 B、 1  C、 3 D、 不确定的值

55、若执行以下程序段: int  a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3); printf(“%d,%d,%d\n”,a, b, c); 其输出结果是(B)(2分)

 A、0,0,-10 B、0,0,5   C、-10,3,-10  D、3,3,-10

 

58、条件运算符的结合方向是(  A   )。(2分)

 A、自右至左; B、自左至右; C、任意; D、前后顺序;

59、对于程序段int x=-1; do { x=x*x; }while(!x);说法正确的是(  C  )。(2分)

 A、是死循环 B、循环执行两次 C、循环执行一次  D、有语法错误

 

 

62、以下对一维整形数组a进行正确初始化的语句是(  C )。(2分)

 A、int a[10]=(0,0,0,0,0);  B、int a[10]={}; C、int a[]={0};D、int a[10]={10*1};

64、以下能对二维整形数组a进行正确初始化的语句是(  D )。(2分)

 A、int a[2][3]={0};                            B、int a[][3]={{1,2},{0}};

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

 

65、程序char c[5]={‘a’,’b’,’\0’,’c’c,’\0’}; printf(“%s”,c);}的运行结果是( D  )。(2分)

 A、'a''b'B、ab  C、ab cD、ab

 

67、在定义语句int *f();中,标识符f代表的是( D )。(2分)

 A、一个用于指向整型数据的指针变量

 B、一个用于指向一维数组的行指针

 C、一个用于指向函数的指针变量

 D、一个返回值为指针型的函数名

68、设p1和p2是指向同一个字符串的指针变量,e为字符变量,则以下不能正确执行的赋值语句是(B)。(2分)

 A、c=*p1+*p2;B、p2=c C、p1=p2 D、c=*p1*(*p2);

69、C语言结构体类型变量在程序执行期间(A )(2分)

 A、所有成员一直驻留在内存中。

 B、只有一个成员驻留在内存中。                       

 C、部分成员驻留在内存中。

 D、没有成员驻留在内存中。

85、判断字符串a是否大于b,应当使用( D  )。(2分)

 A、if (a>b)B、if (strcmp(a,b)) C、if (strcmp(b,a)>0)D、if (strcmp(a,b)>0)

 

 

86、若已定义char s[2][40]={"china","English"};则在下面表达式中能表示字符‘E’的地址的是( B  )。 (2分)

 A、&s[2][1]       B、s[1]     C、&s[1]D、&(s[1]+1)

87、关于局部变量,下列说法正确的是 (  D   )。(2分)

 A、 定义该变量的程序文件中的函数都可以访问。

 B、 定义该变量的函数中的定义处以下的任何语句都可以访问。

 C、 定义该变量的复合语句的定义处以下的任何语句都可以访问。  D、 局部变量可用于函数之间传递数据。

 

88、程序char  a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(“%d”,*--p);的输出结果是(      C    )。(2分)

 A、非法   B、a[4]的地址        C、5              D、3

 

90、下列正确定义一个文件指针pm的语句是(C )(2分)

 A、FILE pm;B、file *pm; C、FILE *pm;D、file pm;

 

94、以下叙述中正确的是( C)(2分)

 A、在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。  B、C程序由主函数组成

C、C程序由函数组成

 D、C程序由函数和过程组成

100、以下关于运算符优先顺序的描述中正确的是(  C    )。(2分)

 A、关系运算符<算术运算符<赋值运算符<逻辑与运算符

 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符

C、赋值运算符<逻辑与运算符<关系运算符<算术运算符

 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符

 

108、若有char a[80],b[80];则正确的是(  D )。 (2分)

 A、puts(a,b);B、printf("%s,%s",a[ ],b[ ]); C、putchar(a,b); D、puts(a);puts(b);

 

109、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是( B  )。 (2分)

 A、s+1 B、s++  C、&s[0]+1 D、&s[1]

 

 

110、若有说明:int  a[3][4];则数组a中各元素( C  )。(2分)

 A、可在程序的运行阶段得到初值0

 B、可在程序的编译阶段得到初值0 C、不能得到确定的初值

 D、可在程序的编译或运行阶段得到初值0

 

112、有程序 char s[]=”ABCD”, *P; for(p=s+1; p<s+4; p++)  printf (“%s ”,p); 程序的输出结果是(       D    ) 。                     (2分)

 A、ABCD BCD CD D B、A B C D    C、B C D             D、BCD CD D

 

Ⅲ    建议 

刷题过程中可对照课本复习巩固相关知识点.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/698321.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.1 软件工程

第2章 信息技术知识 2.1 软件工程 现状&#xff1a; 开发软件的规模越来越大复杂度越来越高用户需求并不十分明确缺乏软件开发方法和工具方面的有效支持 软件成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等问题日益突出。人们开始用工程的方法进行软件…

QCC---Aptx Lossless验证

因为aptx Lossless属于高通骁龙声音的一部分&#xff0c;一般支持高通骁龙声音的设备会支持到&#xff0c;比如说手机&#xff0c;而且还要支持最新的aptx adaptive协议R2.2版本。但是如果手上没有这样的手机的话&#xff0c;有source芯片也可以去做测试验证。在最新的784.1版本…

回溯算法-组合问题-力扣第77题

什么是组合问题—— 举例&#xff1a; 有一个集合&#xff1a;{1,2,3,4} 现在要找出这个集合里面所有组合大小&#xff08;组合长度&#xff0c;组合里面数据的个数&#xff09;为2的组合 那么就有&#xff1a;总共6种组合 {1,2}&#xff0c;{1,3}&#xff0c;{1,4} {2,3}…

小猪APP分发:掌握封装应用的艺术,优化用户体验

在移动应用市场日益激烈的竞争环境中&#xff0c;小猪APP分发www.ppzhu.net脱颖而出&#xff0c;成为众多开发者信赖的伙伴。它不仅简化了应用的发布流程&#xff0c;更通过其核心的封装技术&#xff0c;有效解决了应用分发中的一系列痛点&#xff0c;为用户带来无缝、高效的下…

Python从0到POC编写--函数

数学函数&#xff1a; 1. len len() 函数返回对象&#xff08;字符、列表、元组等&#xff09;长度或项目个数&#xff0c; 例如&#xff1a; str "python" len(str)2. range range() 函数返回的是一个可迭代对象&#xff08;类型是对象&#xff09;&#xff0c;…

Nios实验入门——用Verilog编程方式完成LED流水灯显示并使用串口输出“Hello Nios-II”字符到笔记本电脑

文章目录 前言一、Verilog编程方式完成LED流水灯显示1.1 新建工程并添加FPGA芯片1.2 新建.v文件并添加至顶层实体1.3 引脚分配1.4 编译(包含分析与综合)1.5 选择烧录器1.6 添加烧录文件1.7 下载1.8 实验现象 二、Verilog编程方式实现串口2.1 uart_tx.v文件2.2 test.v文件2.3 to…

【MySQL】sql表设计的注意事项

程序员的实用神器 文章目录 程序员的实用神器强烈推荐引言注意事项强烈推荐专栏集锦写在最后 强烈推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站:人工智能 推荐一个个人工作&#x…

Android面试题之Kotlin的apply、let、also、run函数

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 apply apply函数可以看作是一个配置函数&#xff0c;可以传入一个接收者&#xff0c;然后调用一系列函数来配置以便使用&#xff0c;如果提供l…

Redis-数据过期策略

文章目录 Redis数据持久化策略的作用是什么&#xff1f;Redis的数据过期策略有哪些&#xff1f;惰性删除定期删除 更多相关内容可查看 Redis数据持久化策略的作用是什么&#xff1f; Redis数据过期策略是指在Redis中设置数据的过期时间&#xff0c;并在数据过期时自动从数据库…

《安富莱嵌入式周报》第336期:开源计算器,交流欧姆表,高性能开源BLDC控制器,Matlab2024a,操作系统漏洞排名,微软开源MS-DOS V4.0

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 本周更新一期视频教程&#xff1a; BSP视频教程第30期&#xff1a;UDS ISO14229统一诊断服务CAN总线专题&#xff0c;常…

【SRC实战】无限获取优惠码

挖个洞先 https://mp.weixin.qq.com/s/HgMK4S8275VvFVbnSp6Qsw “ 以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合 ” 01 — 漏洞证明 “ 获取优惠码有次数限制的情况下&#xff0c;如何绕过&#xff1f;” 1、新用户专属福利&#xff0c;免费领100元优惠…

聚观早报 | 小米与京东达成合作;比亚迪销量全球第一

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 5月14日消息 小米与京东达成合作 比亚迪销量全球第一 vivo X100s关键参数曝光 小鹏汽车进军澳大利亚市场 腾讯Q…