ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言不挂科之我爱谭浩强——选择填空拿满分(附例题答案和知识点详解)

2020-06-28 23:03:25  阅读:358  来源: 互联网

标签:知识点 ++ 运算符 int 填空 ___ 例题 标识符 表达式


  1. C语言程序的基本单位是___C___。
    A、程序行 B、语句
    C、函数 D、字符
  2. 请选出可用作C语言用户标识符的一组标识符___B___。
    A、void 、 define 、 WORD
    B、a3_b3 、 _123 、 IF
    C、For 、 - abc 、 ase
    D、2a 、DO、 sizeof

标识符指的是函数名,变量名
1、只能包含数字、字母以及下划线,不能包含其他特殊字符
2、只能以字母或下划线开头
3、不能以系统已有的关键字重名

  1. 假定x和y为double型,则表达式(x=2,y=x+5/2)的值是__C__ 。
    A、4.500000 B、4
    C、4.000000 D、2.000000

    5/2是按照整数运算的,所以5/2=2,再加上2,结果是double型的所以是4.000000,六位小数

  2. 下列可以正确表示字符型常量的是___D__。
    A、297 B、“a”
    C、"\n" D、’\t’

    C语言中,一个字符常量代表 ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的范围是0~127。由于字符常量用单引号括起来,所以选项B、C错误,选项 D超过了字符常量的表示范围。

  3. 有如下程序段,对应正确的数据输入是___A___。

float x,y;
scanf(”%f%f”, &x,&y);
printf(”a=%f,b=%f”, x,y);

A、2.04<回车> 5.67<回车>
B、2.04,5.67<回车>
C、2.04,5.67<回车>
D、2.045.67<回车>

C的,改为空格就对了
如果是这样
scanf("%f,%f", &x,&y);
printf(“a=%f,b=%f”, x,y);
C就对了,A就错了

  1. 已知:char ch=‘A’;则下列表达式的值是__B__。
  ch = (ch>='A'&&ch<='Z') ? (ch+32) : ch;
  
    A、A          
    B、a         
    C、Z      
    D、z

根据ascll码,大写字母加32变小写

  1. a=(a=35,a4)的值为___60__

c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14;a=(a=35,a4)的值是60,其中(a=35,a4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。

  1. 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、
    m=2、n=1,则逻辑表达式(ma<b)&&(nc<d) 的值为__A__。
 A、0         B、  1       C、2         D、 3
自左向右,先算a<b,为真,所以=1,再看m==1,为假 =0,所以(m==a<b)为假=0,中间是and符号,所以不用算了,答案就是假 =0

一级运算符:标识,常量,字符串文字量,优先级提升表达式最优先执行。

二级运算符:数组下标运算(expression)、函数调用(argument-expression-list)、成员访问(identifier、 -> identifier)、
后缀自增(i++)、后缀自减(i--)、 复合初始化(initializer-list)。

三级运算符:前缀自增(++i)、前缀自减(--i)、单目转型表式式(取地址& ,提领 * , 正号+ ,负号-、 位反~ 逻辑否!)、
求类型长度(sizeof unary-expression)。

四级运算符:强制表达式成为type-name指定的类型( type-name ) cast-expression。

五级运算符:“ * ” 乘法运算符。

六级运算符:“ + ”加法运算符。

七级运算符:<< 左移运算符;>> 右移运算符。

八级运算符:<、<=、>、>=关系运算符。

九级运算符:“ == ”等于运算符;“ != ”不等于运算符。

十级运算符:“ & ”按位与运算符。

十一级运算符:“ ∧ ”按位异或运算符。

十二级运算符:“ | ”按位或运算符。

十三级运算符:“&&”逻辑与运算符。

十四级运算符:“ || ”逻辑或运算符。

十五级运算符:? :条件运算符。

C语言中各运算符的结合性:

1、左结合性(自左至右):

例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,
然后再执行+z 的运算。这种自左至右的结合方向就称为“左结合性”。

2、右结合性(自右至左)

自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。
如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
  1. 执行以下程序后输出的结果是___D__。
main()
{ int y=10;
  do {y--;}
  while(--y);
  printf("%d\n",y--);}
  A、-1         B、1          C、8          D、0

这个题的意思就是,一直做yy--y−−,当y=0--y=0−−y=0时,就打印yy--y−−的y值,结束do循环
x++:先赋值再自加
++x:先自加再赋值
先 y- -=9,- -y=8!=0,所以继续y- -,后面一直这样循环,现在设循环到y=2了,do(y- -) 后,y= 1,现在- -y=0,就可以打印y- -了,y=1,y=y-1,y=0,输出为0,

  1. 执行以下程序后输出的结果是___B__。
main()
  {int i, j, w=0;
   for(i=4; i; i--)
     for(j=1;j<=2;j++)
        w=w+i*j; 
	w=i*j;
    printf("%d\n",w);
  }
 A、4           B、0           C、1           D、30

这个代码前面那个 w=w+i* j; 没用,后面的w=ij;直接将其取代了。为啥是0呢,因为循环之后,i=1,j=2,然后i–后i=0,j=3,w=03=0
具体可看下面程序

  {int i, j, w=0;
   for(i=4; i; --i){
   		printf("k: %d \n",i);
		for(j=1;j<=2;j++){
		printf("j: %d \n",j);
        w=w+i*j;
		}}
w=i*j;
printf("*****************\n");
printf("w: %d \n",w);
printf("i: %d \n",i);
printf("j: %d \n",j);
  }

k: 4
j: 1
j: 2
k: 3
j: 1
j: 2
k: 2
j: 1
j: 2
k: 1
j: 1
j: 2
*****************
w: 0
i: 0
j: 3
  1. 以下程序的输出结果是 A
f( int a){
	int b=0;
    static int c = 3;
    b++; c++;
    return(a+b+c);   
	}
int main(){
	int a = 2, i;
    for(i=0;i<3;i++) 
	printf("%d\n",f(a));
}
 A、 7        B、 7        C、 7           D、 7
     8           9           10             7
     9           11          13             7

a和b他俩是动态的,每次循环都是固定值,a=2,b++=1和2+1=3。c为静态变量,每次++之后都记住了上次的值,也就是三次循环分别是3++ ,4++, 5++ 结果是3+4 , 3+5, 3+6

  1. 设C程序如下:程序运行输出的结果是__D_ 。
#define ABC(x) x*x
int main(){
	 int a=3,b;
     b=ABC(a+1);
     printf("b=%d", b);
}
 A、b=4                         B、b=a+1
 C、b=16                        D、b=7

C语言中,可以用 #define 定义一个标识符来表示一个常量。其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。
#define 定义标识符的一般形式为:#define 标识符 常量 //注意, 最后没有分号
#define 和 #include 一样,也是以“#”开头的。凡是以“#”开头的均为预处理指令,#define也不例外。
#define又称宏定义,标识符为所定义的宏名,简称宏。标识符的命名规则与前面讲的变量的命名规则是一样的。#define 的功能是将标识符定义为其后的常量。一经定义,程序中就可以直接用标识符来表示这个常量。是不是与定义变量类似?但是要区分开!变量名表示的是一个变量,但宏名表示的是一个常量。可以给变量赋值,但绝不能给常量赋值。
宏所表示的常量可以是数字、字符、字符串、表达式。其中最常用的是数字。

本题表示的是表达式
ABC(a+1)={a+1*a+1}=a+a+1=7

  1. 以下程序的输出结果是___B__
{char b[  ]="Language";
 char *p=b;
 printf("%c ",*(b+2));
 p=p+7;
 printf("%c\n",*p++);
}

A、2  7        B、n  e         C、a  g          D、n  u

字符串与指针,不太懂的看看这个博客吧,里面有一样的例题https://blog.csdn.net/weixin_45755332/article/details/106922351

标签:知识点,++,运算符,int,填空,___,例题,标识符,表达式
来源: https://blog.csdn.net/weixin_45755332/article/details/106979945

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有