下列叙述中正确的是()。
A)程序设计就是编制程序
B 程序的测试必须由程序员自己去完成
C 程序经调试改错后还应进行再测试
D 程序经调试改错后不必进行再测试
D
下列关于栈的描述正确的是()。
A)在栈中只能插入元素而不能删除元素
B 在栈中只能删除元素而不能插入元素栈是特殊的线性表,只能在一端插入或删除元素
C 栈是特殊的线性表只能在一端插入或删除元素
D 栈是特殊的线性表,只能在一端插入元素而在另一端删除元素
C
以下叙述中错误的是()。
A C语句必须以分号结束
B 复合语句在语法上被看作一条语句
C 空语句出现在任何位置都不会影响程序运行
D 赋值表达式末尾加分号就构成赋值语句
C
以下能正确定义且赋初值的语句是()。
A int n1=n2=10;
B char c=32;
C float f=f+1.1;
D double x=12.3E2.5;
B
有以下程序段
int n,t=1,s=0;
scanf("%d",&n);
do{s=s+t; t=t-2;}
while (t!=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是()。
A 任意正奇数
B 人员负偶数数
c 任意正偶数
D 任意负奇数
D
设变量已正确定义,则以下能正确计算f=n!的程序段是()。
A) f=0;for(i=1;i<=n;i++) f*=i;
B) f=1;for(i=1;i>=2;i--) f*=i;
C) f=1;for(i=n;i>1;i++) f*=i;
D) f=1;for(i=n;i>=2;i--) f*=i;
D
有以下程序
main(){
int k=5,n=0; while(k>0)
{switch(k) {
default: break;
case 1:n+=k;
case 2:
case 3: n+=k;}
k--;}
printf("%d\n",n);
}
程序运行后的输出结果是
7
设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是()。
Α *p=*q;
B p=q;
C *p=&n1;
D p=*q;
A
设函数 fun 的定义形式为void fun(char ch, float x) {..}则以下对函数fun的调用语句中,正确的是()。
A fun("abc",3.0);
B t=fun('D',16.5);
C fun('65',2.8);
D fun(32,32);
D
#include "stdio.h"
struct STU{
int num;
float TotalScore;
};
void f(struct STU p){
struct STU s[2] = {{ 20044,550 } , { 20045,537 }};
p.num = s[1].num;
p.TotalScore = s[1].TotalScore;
}
int main(void){
struct STU s[2] = { {20041,703},{20042,580} };
f(s[0]);
printf("%d %3.0f\n",s[0].num,s[0].TotalScore);
}
程序运行后的输出结果是()。
20044550
中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展一让标准C支持中断。具代表事实是,产生了一个新的关键字interrupt。下面的代码就使用了interrupt 关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的结果。
interrupt double compute_area (double radius){
double area = Pl * radius * radius;
printf(" Ar ea = %f", area);
return area;
}
(1)中断不应该有返回值
(2)中断子程序中应该尽量少使用浮点类型,因为不可重入,以及printf也是不可重入的,在不同平台移植会出错。
(3)中断不应该传参
在windows下,写出运行结果。
char str[]=" Hello";
char *p=str;
int n=10;
则:
sizeof(str)= ( 6 )
sizeof(p) = ( 4 )
sizeof(n) = ( 4 )
void func(char str[100]){ 4 }
sizeof(str)=( )
对于一个频繁使用的短小函数,在C语言中应用( 宏定义 )宏定义实现,在C++中应用( 内联函数 )实现。
https://www.nowcoder.com/questionTerminal/b76ada8b1eca4061a21bc87abbd0b48f?orderByHotValue=0&pos=298&mutiTagIds=569_609_614
若采用10MHz的晶体振荡器,则MCS-51单片机的振荡周期为( )ns,机器周期为( )us
10M的晶振下你的
振荡周期为 1S/10M=0.1us,
振荡周期为 0.1us,
状态周期为 0.1us*2=0.2us,
机器周期为 0.2us*6=1.2us.
一个 32 位的机器,该机器的指针是( )个字节
4
指针是多少位只要看地址总线的位数就行了。80386以后的机子都是32的数据总线。所以指针的位数就是4个字节
设有定义double a[10],*s=a;,能够代表数组元素a[3]的是( )
A. (*s)[3]
B. *(s+3)
C. *s[3]
D. *s+3
s指向数组首元素,s+3表示指针s向后移动3个位置,即指向数组的第4个元素a[3],用间址符“*”即可引用a[3]。
B
void main(void){
union{
char ch[2];
int d;
}s;
s.d = 0x4321;
printf("%x ,%x \n",s.ch[0],s.ch[1]);
}
在 16 位编译系统上,程序执行后的输出结果是( 21 ),( 43 )
#include "stdio.h"
//#includ "myfun.c"
void fun(){
char s[80],c;
int n = 0;
while((c = getchar () ) != '\n' )
s[n++] = c;
n--;
while(n >= 0)
printf("%c",s[n--]);
}
void main(void){
fun();
printf("\n");
}
当编译连接通过后,运行程序T18 时,输入Thank!则输出结果是:()
!knahT
有以下程序
#define f(x) (x*x)
main(){
int i1, i2;
i1=f(8)/f(4) ;
i2=f(4+4)/f(2+2);
printf("%d, %d\n",i1,i2);
}
程序运行后的输出结果是()
4 3
有这样的定义: int a, b;交换两个变量的值,而不使用其他存储空间,
请写出算法:()
int a=10,b=12; //a=1010^b=1100;
a=a^b; //a=0110^b=1100;
b=a^b; //a=0110^b=1010;
a=a^b; //a=1100=12;b=1010;