C语言相关第二题、多项选择题(每题2分,5道题共10分) 2、已知int a[]={1,2,3,4,5,6,7,8,9}

C语言相关
第二题、多项选择题(每题2分,5道题共10分)

2、已知int a[]={1,2,3,4,5,6,7,8,9},*p = a; 则值为3的表达式是()
A、p+=2,*(p++)
B、p+=2,*++p
C、p+=2,*p++
D、p+=2,++*p

3、以下叙述中,错误的叙述是:
A、函数的形参都属于全局变量
B、全局变量的作用域不比局部变量的作用域范围大
C、静态(static)类别变量的生存期贯穿整个程序的运行期间
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值

4、下列选项中关于外部变量的作用域,正确的是( )。
A、外部变量的作用域是所在的源文件
B、外部变量的作用域是整个源程序
C、可以通过extern,将一些外部变量的作用域扩展到多个源文件
D、外部变量若定义为静态的,其他源文件不能使用该外部变量
5、下列选项中关于变量的生存期,不正确的描述是( )。
A、auto型变量是静态存储的,其生存期等同于程序的运行期。
B、static变量是动态存储的,函数调用结束时,static变量所占用的内存单元被释放
C、register变量都是动态存储的
D、外部变量都是静态存储的
Sanji-Yee 1年前 已收到1个回答 举报

bongbong113 幼苗

共回答了15个问题采纳率:86.7% 举报

9c 没有break,符合条件的语句及以后的语句都要执行,直到有break或switch结束
10c (a=2)和(b=-2)均为赋值表达式,返回值一定是1,所以整个表达式值为1,由printf输出
11d 你的b是不是少打括号了???d中带值进去就能看出来啊
12b M等价于表达式真,也就是b
13a 我没见过这样的输出,但是表达式(M)?(a++):(a--)应该只有一个被执行,用不到两个参数啊
14b 同12
15d 控制循环的只有i,i一次最多减一,而在i=1时又无法做i--,故死循环
16c 第一次由case1进入switch(b)后执行printf("**0**");后 break的是switch(b
),switch(a)没有跳出,继续执行后面语句,见题9,故。。。
17a 同16
1.将星期一、星期二、。。。星期日依次编号为1,2,。。。7,用switch语句编一个程序从键盘上输入星期的序号,则输出对应的英文。比如输入6,则输出“Saturday”。
void main()
{ int x;
printf("请输入相应数字:);
scanf("%d",&x);
switch(x)
{ case 1:printf("Monday"); break;
case 2:printf("Tuesday");break;
case 3:printf("Wednesday ");break;
case 4:printf("Thursday ") break;
case 5:printf("Friday");break;
case 6:printf("Saturday");break;
case 7:printf("Sunday");break;
default:printf("输入错误!);break
}
}
2. 写一个计算器程序,用户输入运算数和四则运算符,输出计算结果。当输入的不是四则运算符或除数为0时,提示出错信息。
switch(c)
{
case '+':printf("=%f",a+b);break;
case '-':printf("=%f",a-b);break;
case '*':printf("=%f",a*b);break;
case '/":{if(b==0)printf("输入有误!");break;
else printf("=%f",a/b); break;}
default:printf("输入有误!");
}

1年前

4
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.136 s. - webmaster@yulucn.com