超多的题库,支持文字、图片,语音搜题,包含国家开放大学、广东开放大学、云南开放大学、北京开放大学、上海开放大学、江苏开放大学、超星、青书、奥鹏等等多个平台题库,考试作业必备神器。

C语言程序设计基础课程综合实验
平台: cx
学校: 无
hash: cx_245326209
问题: 1. if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是( )。
选项:
• A. 必须是逻辑值
• B. 必须是整数值
• C. 必须是正数
• D. 可以是任意合法的数值
答案: 请关注公众号【渝粤搜题】查看答案
问题: 2. 若变量已正确定义,在if(W) printf("%d\n",k);中,以下不可替代W的是( )。
选项:
• A. a<>b+c
• B. ch=getchar()
• C. a==b+c
• D. a++
答案: 请关注公众号【渝粤搜题】查看答案
问题: 3. 设有int m=1,n=2;则++m==n的结果是( )。
选项:
• A. 0
• B. 1
• C. 2
• D. 3
答案: 请关注公众号【渝粤搜题】查看答案
问题: 4. 下列条件语句中,功能与其他语句不同的是( )。
选项:
• A. if(a) printf(“%d\n”,x); else printf(“%d\n”,y);
• B. if(a==0) printf(“%d\n”,y); else printf(“%d\n”,x);
• C. if(a!=0) printf(“%d\n”,x); else printf(“%d\n”,y);
• D. if(a==0) printf(“%d\n”,x); else printf(“%d\n”,y);
答案: 请关注公众号【渝粤搜题】查看答案
问题: 5. 以下程序的输出结果是( )。
int main()
{
int m=5;
if(m++>5)
printf(“%d\n”,m);
else
printf(“%d\n”,m--);
return 0;
}
选项:
• A. 4
• B. 5
• C. 6
• D. 7
答案: 请关注公众号【渝粤搜题】查看答案
问题: 6. 执行以下程序的输出结果是( )。
int main()
{
int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,b);
return 0;
}
选项:
• A. 6,1
• B. 2,1
• C. 6,0
• D. 2,0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 7. 若执行以下程序时从键盘上输入9,则输出结果是( )。
int main()
{
int n;
scanf("%d",&n);
if(n++<10)
printf("%d\n",n);
else
printf("%d\n",n--);
return 0;
}
选项:
• A. 11
• B. 10
• C. 9
• D. 8
答案: 请关注公众号【渝粤搜题】查看答案
问题: 8. 阅读以下程序段:
int main()
{
int a=45,b=40,c=50,d;
d=a>30?b:c;
switch(d)
{
case 30 : printf("%d,",a);
case 40 : printf("%d,",b);
case 50 : printf("%d,",c);
default : printf("#");
}
return 0;
}
则输出的结果是( )。
选项:
• A. 40,50,
• B. 50,#
• C. 40,#
• D. 40,50,#
答案: 请关注公众号【渝粤搜题】查看答案
问题: 9. 能表示x为偶数的表达式是( )。
选项:
• A. x%2==0
• B. x%2==1
• C. x%2
• D. x%2!=0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 10. C 语言的 switch 语句中,case 后( )。
选项:
• A. 只能为常量
• B. 只能为常量或常量表达式
• C. 可为常量及表达式或有确定值的变量及表达式
• D. 可为任何量或表达式
答案: 请关注公众号【渝粤搜题】查看答案
问题: 11. 若有int x=10,y=20,z=30;以下语句执行后x,y,z 的值是( )。
if(x>y)
z=x;
x=y;
y=z;
选项:
• A. x=10,y=20,z=30
• B. x=20,y=30,z=30
• C. x=20,y=30,z=10
• D. x=20,y=30,z=20
答案: 请关注公众号【渝粤搜题】查看答案
问题: 12. 以下程序的输出结果是( )。
int main()
{
float a=3.1,b;
if(a<3)
b=0;
else if(a<6)
b=a*=a+1;
else if(a<9)
b=a*10;
else
b=10.0;
printf(“%f\n”,b);
return 0;
}
选项:
• A. 0.000000
• B. 10.00000
• C. 12.709999
• D. 1.000000
答案: 请关注公众号【渝粤搜题】查看答案
问题: 13. 若w=1,x=2,y=3,z=4,则表达式w
选项:
• A. 4
• B. 3
• C. 2
• D. 1
答案: 请关注公众号【渝粤搜题】查看答案
问题: 14. 下面的程序段中共出现了几处语法错误( )。
int a,b;
scanf("%d",a);
b=2a;
if(b>0)
printf("%b",b);
选项:
• A. 1
• B. 2
• C. 3
• D. 4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 15. C语言中用于结构化程序设计的三种基本结构是( )。
选项:
• A. 顺序结构、选择结构、循环结构
• B. if、switch、break
• C. for、while、do-while
• D. if、for、continue
答案: 请关注公众号【渝粤搜题】查看答案
问题: 16. 已有定义语句:int a=4,b=6,temp;,执行以下语句后,能正确表示a,b,temp值的选项是( )。
if(a>b)
temp=a;
else
temp=b;
printf("%d,%d,%d",a,b,temp);
选项:
• A. 4,6,4
• B. 4,6,6
• C. 6,4,6
• D. 6,4,4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 17. 在if嵌套语句中,为避免else匹配错误,C语言规定else总是与( )组成配对关系。
选项:
• A. 最近的if
• B. 在其之前未配对的if
• C. 在其之前尚未配对的最近的if
• D. 同一行的if
答案: 请关注公众号【渝粤搜题】查看答案
问题: 18. 以下选项中与
if(a==1) a=b;
else a++;
语句功能不同的switch语句是( )。
选项:
• A. switch(a==1)
{
case 0: a=b; break;
case 1: a++;
}
• B. switch(a)
{
case 1: a=b; break;
default: a++;
}
• C. switch(a)
{
default: a++; break;
case 1: a=b;
}
• D. switch(a==1)
{
case 1: a=b; break;
case 0: a++;
}
答案: 请关注公众号【渝粤搜题】查看答案
问题: 19. 以下程序的运行结果是( )。
int main()
{
int i=0;
if(i==0)
printf(“**”);
else
printf(“$”);
printf(“*\n”);
return 0;
}
选项:
• A. *
• B. $*
• C. **
• D. ***
答案: 请关注公众号【渝粤搜题】查看答案
问题: 20. 有以下程序段:
int main()
{
int a=0,b=0,c=0,d=0;
if(a=1)
b=1;
c=2;
else
d=3;
printf("%d,%d,%d,%d",a,b,c,d);
return 0;
}
程序运行后的输出结果是( )
选项:
• A. 1,1,2,0
• B. 0,0,0,3
• C. 编译有错
• D. 0,1,2,0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 21. 有以下程序:
int main()
{
int a=5,b=0,c=0;
if(a=b+C)
printf("***\n");
else
printf("$$$\n");
return 0;
}
程序运行结果是( )。
选项:
• A. 有语法错不能通过编译
• B. 可以通过编译但不能通过连接
• C. 输出***
• D. 输出$$$
答案: 请关注公众号【渝粤搜题】查看答案
问题: 22. 设有int i=1,j=2,k=3;则表达式i&&j&&k 的值为( )。
选项:
• A. 1
• B. 2
• C. 3
• D. 0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 23. C 语言中,逻辑“真”等价于( )。
选项:
• A. 大于零的数
• B. 大于零的整数
• C. 非零的数
• D. 非零的整数
答案: 请关注公众号【渝粤搜题】查看答案
问题: 24. 以下程序的输出结果是( )。
int main()
{
int a=2,b=1,c=2;
if(b
选项:
• A. b=1,c=2
• B. b=1,c=0
• C. b=2,c=2
• D. b=1,c=1
答案: 请关注公众号【渝粤搜题】查看答案
问题: 25. 已有定义语句:int x=6,y=4,z=5;,执行以下语句后,能正确表示x,y,z值的选项是( )。
if(x
选项:
• A. x=4,y=5,z=6
• B. x=6,y=4,z=5
• C. x=4,y=5,z=5
• D. x=5,y=6,z=4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 26. 设有int a=2,b;则执行b=a&&1;语句后,b的结果是( )。
选项:
• A. 0
• B. 1
• C. 2
• D. 3
答案: 请关注公众号【渝粤搜题】查看答案
问题: 27. 若运行时给变量x 输入12,则以下程序的运行结果是( )。
int main()
{
int x,y;
scanf(“%d”,&x);
y=x>12?x+10:x-12;
printf(“%d\n”,y);
return 0;
}
选项:
• A. 0
• B. 22
• C. 12
• D. 10
答案: 请关注公众号【渝粤搜题】查看答案
问题: 28. 设有int n=2;则++n+1==4的结果是( )。
选项:
• A. true
• B. false
• C. 1
• D. 0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 29. 若变量已正确定义,有以下程序段:
int main()
{
int a=3,b=5,c=7;
if(a>b)
a=b;
c=a;
if(c!=a)
c=b;
printf(“%d,%d,%d\n”,a,b,c);
return 0;
}
程序运行结果是( )。
选项:
• A. 程序段有语法错
• B. 3,5,3
• C. 3,5,5
• D. 3,5,7
答案: 请关注公众号【渝粤搜题】查看答案
问题: 30. 有以下程序段:
int main()
{
int x=1,y=0;
if(!x) y++;
else if(x==0)
if(x) y+=2;
else y+=3;
printf("%d\n",y);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. 3
• B. 2
• C. 1
• D. 0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 31. 若int k=8;则执行下列程序后,变量k的正确结果是( )。
int main()
{
int k=8;
switch(k)
{
case 9:k+=1;
case 10:k+=1;
case 11:k+=1;break;
default:k+=1;
}
printf("%d\n",k);
return 0;
}
选项:
• A. 12
• B. 11
• C. 10
• D. 9
答案: 请关注公众号【渝粤搜题】查看答案
问题: 32. 下列描述正确的是( )。
选项:
• A. break语句只能用于switch语句中
• B. 在switch语句中必须使用default语句
• C. break语句必须与switch语句中的case配对使用
• D. 在switch语句中,不一定使用break语句
答案: 请关注公众号【渝粤搜题】查看答案
问题: 33. 有如下程序:
int main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
return 0;
}
该程序的输出结果是( )。
选项:
• A. a=2,b=1
• B. a=1,b=1
• C. a=1,b=0
• D. a=2,b=2
答案: 请关注公众号【渝粤搜题】查看答案
问题: 34. 设有int n=2;则执行++n+1==4;语句后,n的结果是( )。
选项:
• A. 1
• B. 2
• C. 3
• D. 4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 35. 以下程序的输出结果是( )。
int main()
{
int a=53,b=18,c=0;
if(b10)
{
c=a--;
c++;
}
b++;
printf(“%d,%d,%d”,a,b,c);
return 0;
}
选项:
• A. 52,18,52
• B. 52,19,54
• C. 52,19,52
• D. 54,18,52
答案: 请关注公众号【渝粤搜题】查看答案
问题: 36. 逻辑运算符两侧运算对象的数据类型( )。
选项:
• A. 只能是0或1
• B. 只能是0或非0正数
• C. 只能是整型或字符型数据
• D. 可以是任何类型的数据
答案: 请关注公众号【渝粤搜题】查看答案
问题: 37. 若通过键盘输入6和8时,执行下述程序的结果为( )。
int main()
{
int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
选项:
• A. 36
• B. 64
• C. 48
• D. 以上都不对
答案: 请关注公众号【渝粤搜题】查看答案
问题: 1. 以下正确的描述是( )。
选项:
• A. continue语句的作用是结束整个循环的执行
• B. 只能在循环体内和switch语句体内使用break语句
• C. 在循环体内使用break语句或continue语句的作用相同
• D. 从多层循环嵌套中退出时,只能使用goto语句
答案: 请关注公众号【渝粤搜题】查看答案
问题: 2. 下列程序的输出结果是:
int main()
{
int i;
for(i=1;i<=5;i++)
{
if(i%2==0)
break;
printf("%d ",i);
}
printf("ok!\n");
return 0;
}
选项:
• A. Ok!
• B. 1 2 3 4 5 Ok!
• C. 1
• D. 1 0k!
答案: 请关注公众号【渝粤搜题】查看答案
问题: 3. C语言中while和do-while循环的主要区别是( )。
选项:
• A. do-while的循环体至少无条件执行一次
• B. while的循环控制条件比do-while的循环控制条件更严格
• C. do-while允许从外部转到循环体内
• D. do-while 的循环体不能是复合语句
答案: 请关注公众号【渝粤搜题】查看答案
问题: 4. 下列程序的输出结果是( )。
int main()
{
int a=0,b=0,c=0,i;
for(i=0;i<4;i++)
{
switch(i)
{
case 0:a=++i;
case 1:b=i++;
case 2:c=--i;
case 3:i--;
}
}
printf("%d,%d,%d,%d\n",a,b,c,i);
return 0;
}
选项:
• A. 1,1,1,5
• B. 1,2,3,4
• C. 0,0,0,50
• D. 死循环
答案: 请关注公众号【渝粤搜题】查看答案
问题: 5. 以下程序段的描述,正确的是( )。
x=-1;
do
{
x=x*x;
}while(!x);
选项:
• A. 是死循环
• B. 循环执行两次
• C. 循环执行一次
• D. 有语法错误
答案: 请关注公众号【渝粤搜题】查看答案
问题: 6. 若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是( )。
选项:
• A. 9
• B. 8
• C. 3
• D. 2
答案: 请关注公众号【渝粤搜题】查看答案
问题: 7. 对下列两个语句Ⅰ和Ⅱ描述正确的是( )。
Ⅰ.while(1)
Ⅱ.for(;;)
选项:
• A. 都是无限循环
• B. Ⅰ是无限循环,Ⅱ错误
• C. Ⅰ循环一次,Ⅱ错误
• D. 以上答案都错
答案: 请关注公众号【渝粤搜题】查看答案
问题: 8. for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。
选项:
• A. 0
• B. 1
• C. ;
• D. ,
答案: 请关注公众号【渝粤搜题】查看答案
问题: 9. 设有程序段:
int k=1;
while(k=0)
k=k-1;
这下面描述中正确的是( )。
选项:
• A. while循环执行10次
• B. 循环是无限循环
• C. 循环体语句一次也不执行
• D. 循环体语句执行一次
答案: 请关注公众号【渝粤搜题】查看答案
问题: 10. 以下循环中,while循环的次数是( )。
int main()
{
int i=0;
while(i<10)
{
if(i<1)
continue;
if(i==5)
break;
i++;
}
return 0;
}
选项:
• A. 1
• B. 10
• C. 6
• D. 死循环,不能确定次数
答案: 请关注公众号【渝粤搜题】查看答案
问题: 11. t为int类型,进入下面的循环之前,t的值为0,
while(t=3)
{……}
则以下叙述中正确的是( )。
选项:
• A. 循环控制表达式的值为0
• B. 循环控制表达式的值为1
• C. 循环控制表达式不正确
• D. 以上说法都不对
答案: 请关注公众号【渝粤搜题】查看答案
问题: 12. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是( )。
x=0;
while(!x!=0)
x++;
选项:
• A. 退出while循环后,x的值为0
• B. 退出while循环后,x的值为1
• C. while的控制表达式是非法的
• D. while循环执行无限次
答案: 请关注公众号【渝粤搜题】查看答案
问题: 13. while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定要有能使此表达式的值变为( )的操作,否则,循环将会无限制地进行下去。
选项:
• A. 0
• B. 1
• C. 2
• D. 成立
答案: 请关注公众号【渝粤搜题】查看答案
问题: 14. 若运行以下程序时,从键盘输入回车键,则下面程序的运行结果是( )。
int main()
{
char c;
int v0=1,v1=0,v2=0;
do
{
switch(c=getchar())
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':v1+=1;
default:v0+=1;v2+=1;
}
}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
return 0;
}
选项:
• A. v0=7,v1=4,v2=7
• B. v0=8,v1=4,v2=8
• C. v0=11,v1=4,v2=11
• D. v0=2,v1=0,v2=1
答案: 请关注公众号【渝粤搜题】查看答案
问题: 15. 若有如下语句:
int x=3;
do
{
printf("%d\n",x-=2);
}while(!(--x));
则上面程序段( )。
选项:
• A. 输出的是1
• B. 输出的是1和-2
• C. 输出的是3和0
• D. 是死循环
答案: 请关注公众号【渝粤搜题】查看答案
问题: 16. 执行语句for(i=1;i++<4;);后变量i的值是( )。
选项:
• A. 3
• B. 4
• C. 5
• D. 不定
答案: 请关注公众号【渝粤搜题】查看答案
问题: 17. 循环语句中的for语句,其一般形式如下:
for(表达式1;表达式2;表达式3)
语句;
其中表示循环条件的是( )。
选项:
• A. 表达式1
• B. 表达式2
• C. 表达式3
• D. 语句
答案: 请关注公众号【渝粤搜题】查看答案
问题: 18. 对于 for(表达式1; ;表达式3)可理解为( )。
选项:
• A. for(表达式1;0;表达式3)
• B. for(表达式1;1;表达式3)
• C. for(表达式1;表达式1;表达式3)
• D. for(表达式1;表达式3;表达式3)
答案: 请关注公众号【渝粤搜题】查看答案
问题: 19. 若i为整型变量,则以下循环执行次数是( )。
for(i=10;i==0;)
printf("%d",i--);
选项:
• A. 无限次
• B. 0次
• C. 10次
• D. 程序错误
答案: 请关注公众号【渝粤搜题】查看答案
问题: 20. 以下循环中,while循环的次数是( )。
int main()
{
int i=0;
while(i<5)
{
if(i<1)
continue;
if(i==5)
break;
i++;
}
return 0;
}
选项:
• A. 1
• B. 10
• C. 6
• D. 死循环,不能确定次数
答案: 请关注公众号【渝粤搜题】查看答案
问题: 21. 以下循环体的执行次数是( )。
int main()
{
int i,j;
for(i=0,j=1;i<=j+1;i+=2,j--)
printf("%d\n",i);
return 0;
}
选项:
• A. 3
• B. 2
• C. 1
• D. 0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 22. 在do-while循环中,循环由do开始,用while结束;在while表达式后面的( )不能丢,它表示do-while语句的结束。
选项:
• A. 0
• B. 1
• C. ;
• D. ,
答案: 请关注公众号【渝粤搜题】查看答案
问题: 23. C语言中,下列说法正确的是( )。
选项:
• A. 不能用do-while语句构成循环
• B. do-while语句构成循环必须用break语句才能退出
• C. do-while语句构成循环,当while语句中的表达式为非零时结束循环
• D. do-while语句构成循环,当while语句中的表达式为零时结束循环
答案: 请关注公众号【渝粤搜题】查看答案
问题: 24. 下列程序的输出结果是( )。
int main()
{
int i,a=0,b=0;
for(i=1;i<10;i++)
{
if(i%2==0)
{
a++;
continue;
}
b++;
}
printf("a=%d,b=%d",a,b);
return 0;
}
选项:
• A. a=4,b=4
• B. a=4,b=5
• C. a=5,b=4
• D. a=5,b=5
答案: 请关注公众号【渝粤搜题】查看答案
问题: 25. 以下while循环中,循环体执行的次数是( )。
k=1;
while(k--)
k=6;
选项:
• A. 执行10次
• B. 执行无限次
• C. 一次也不执行
• D. 执行1次
答案: 请关注公众号【渝粤搜题】查看答案
问题: 26. 阅读下列程序段,则程序的输出结果是( )。
int main()
{
int a=10,b=10,k;
for(k=0;a>8;b=++k)
printf("%d,%d,",a--,--b);
printf("\n");
}
选项:
• A. 10,10,10,0,
• B. 10,9,9,0,
• C. 10,10,9,1,
• D. 9,9,9,1,
答案: 请关注公众号【渝粤搜题】查看答案
问题: 27. 下列程序的输出结果是( )。
int main()
{
int i=6;
while(i--)
printf("%d",--i);
printf("\n");
return 0;
}
选项:
• A. 531
• B. 420
• C. 654321
• D. 死循环
答案: 请关注公众号【渝粤搜题】查看答案
问题: 28. 阅读下列程序,程序的输出结果是( )。
int main()
{
int m,n;
float k;
for(m=6;m>2;m--)
{
k=0;
for(n=m;n>1;n--)
k=k+m*n;
}
printf("%f\n",k);
return 0;
}
选项:
• A. 5.000000
• B. 15.000000
• C. 25.000000
• D. 35.000000
答案: 请关注公众号【渝粤搜题】查看答案
问题: 29. 在下列选项中,没有构成死循环的是( )。
选项:
• A. int i=100;
while(1)
{
i=i-1;
if(i>100)
break;
}
• B. for(;;);
• C. int k=10000;
do
{
k++;
}while(k>10000);
• D. int s=36;
while(s)
--s;
答案: 请关注公众号【渝粤搜题】查看答案
问题: 30. 若有如下语句:
int x=3;
do
{
printf("%d\n",x-=2);
}while(!(--x));
则上面程序段( )。
选项:
• A. 输出的是4
• B. 输出的是4和2
• C. 输出的是1和-2
• D. 是死循环
答案: 请关注公众号【渝粤搜题】查看答案
问题: 31. 阅读下列程序段,则程序的输出结果是( )。
int main()
{
int a=8,b=3,k;
for(k=0;a>6;b=++k)
printf("%d,%d,",a--,--b);
printf("\n");
return 0;
}
选项:
• A. 7,2,6,0,
• B. 8,2,7,0,
• C. 7,3,6,1,
• D. 8,3,7,1,
答案: 请关注公众号【渝粤搜题】查看答案
问题: 32. 与以下程序段等价的是( )。
while(a)
{
if(b)
continue;
c;
}
选项:
• A. while (a)
{ if (!b) c; }
• B. while (c)
{ if (!b) break; c; }
• C. while (c)
{ if (b) c; }
• D. while (a)
{ if (b) break; c; }
答案: 请关注公众号【渝粤搜题】查看答案
问题: 33. 阅读下列程序,则执行结果是( )。
int main()
{
int a=0,b=0,c=0,i;
for(i=0;i<4;i++)
{
switch(i)
{
case 0:a=i++;
case 1:b=i++;
case 2:c=i++;
case 3:i++;
}
}
printf("%d,%d,%d,%d\n",a,b,c,i);
return 0;
}
选项:
• A. 0,1,3,4
• B. 1,2,3,4
• C. 0,1,2,5
• D. 0,2,3,4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 34. 下面程序的运行结果是( )。
int main()
{
int a=1,b=10;
do
{
b-=a;
a++;
}while(b--<0);
printf("a=%d,b=%d\n",a,b);
return 0;
}
选项:
• A. a=3,b=11
• B. a=2,b=8
• C. a=1,b=-1
• D. a=4,b=9
答案: 请关注公众号【渝粤搜题】查看答案
问题: 35. 下面有关for循环的正确描述是( )。
选项:
• A. for循环只能用于循环次数已经确定的情况
• B. for循环是先执行循环体语句,后判断表达式
• C. 在for循环中,不能用break语句跳出循环体
• D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案: 请关注公众号【渝粤搜题】查看答案
问题: 36. 下面程序段的运行结果是( )。
int a=1,b=2,c=2,t;
while(a
选项:
• A. 1,2,0
• B. 2,1,0
• C. 1,2,1
• D. 2,1,1
答案: 请关注公众号【渝粤搜题】查看答案
问题: 37. 下列程序的输出结果是( )。
int main()
{
int i,a=1,b=1;
for(i=10;i>0;i--)
{
if(i%3==0)
{
a++;
continue;
}
b++;
}
printf("a=%d,b=%d",a,b);
return 0;
}
选项:
• A. a=4,b=7
• B. a=4,b=8
• C. a=8,b=4
• D. a=7,b=5
答案: 请关注公众号【渝粤搜题】查看答案
问题: 38. 执行for(x=1,y=0;(y!=1)&&(x<4);x++);的结果为( )。
选项:
• A. 无限循环
• B. 循环次数不定
• C. 执行3次
• D. 执行2次
答案: 请关注公众号【渝粤搜题】查看答案
问题: 39. 以下程序段的描述,正确的是( )。
x=-4;
do
{
x=x*x;
}while(!x);
选项:
• A. 是死循环
• B. 循环执行两次
• C. 循环执行一次
• D. 有语法错误
答案: 请关注公众号【渝粤搜题】查看答案
问题: 1. 有字符数组a[80]和b[80],则正确的输出语句是( )。
选项:
• A. puts(a,b);
• B. printf("%s,%s",a[],b[]);
• C. printf("%c,%c",a[],b[]);
• D. puts(a);
puts(b);
答案: 请关注公众号【渝粤搜题】查看答案
问题: 2. 数组char array[6]="abcdef";,则printf("%s",array)的输出结果是( )。
选项:
• A. abcd
• B. abcde
• C. abcdef
• D. 以上都不对
答案: 请关注公众号【渝粤搜题】查看答案
问题: 3. 下面描述正确的是( )。
选项:
• A. 两个字符串所包含的字符个数相同时,才能比较字符串
• B. 字符个数多的字符串比字符个数少的字符串大
• C. 字符串“That”大于字符串“Then”
• D. 字符串“That”小于字符串“Then”
答案: 请关注公众号【渝粤搜题】查看答案
问题: 4. 若有说明char a[]="abcd";,则运行printf("%c",a[1])的结果是( )。
选项:
• A. a
• B. b
• C. c
• D. d
答案: 请关注公众号【渝粤搜题】查看答案
问题: 5. 若有定义:
char a[ ]="Hello!\n";
则strlen(a)和sizeof(a)的值分别为( )。
选项:
• A. 7和7
• B. 7和8
• C. 8和7
• D. 8和8
答案: 请关注公众号【渝粤搜题】查看答案
问题: 6. 定义如下变量和数组:
int k;
int a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是( )。
for(k=0;k<3;k++)
printf("%d",a[k][2-k]);
选项:
• A. 3 5 7
• B. 3 6 9
• C. 1 5 9
• D. 1 4 7
答案: 请关注公众号【渝粤搜题】查看答案
问题: 7. 整型数组不赋初值时,其每个元素的默认值为( )。
选项:
• A. 0
• B. 1
• C. 2
• D. 垃圾值
答案: 请关注公众号【渝粤搜题】查看答案
问题: 8. 以下对二维数组a的声明正确的是( )。
选项:
• A. int a{3}{};
• B. float a(3,4);
• C. double a[1][4];
• D. float a(3)(4);
答案: 请关注公众号【渝粤搜题】查看答案
问题: 9. 对两个数组a和b进行如下初始化:
char a[]="ABCDEF";
char b[]={'A','B','C','D','E','F'};
则以下叙述正确的是( )。
选项:
• A. a与b数组完全相同
• B. a与b长度相同
• C. a和b中都存放字符串
• D. a数组比b数组长度大
答案: 请关注公众号【渝粤搜题】查看答案
问题: 10. 下列定义数组的语句中,哪一个是不正确的( )。
选项:
• A. char a[2][10]={"String1","String2"};
• B. int b[2][2]={ 1,2,3,4};
• C. float x[2][]={ 1,2, , , ,3 };
• D. int y[2][3]={ {1,2,3},{4,5,6} };
答案: 请关注公众号【渝粤搜题】查看答案
问题: 11. 以下对一维整型数组a的说明正确的是( )。
选项:
• A. int a(10);
• B. int n;scanf("%d",&n);int a[n];
• C. int n=10,a[n];
• D. #define SIZE 10; int a[SIZE];
答案: 请关注公众号【渝粤搜题】查看答案
问题: 12. 有以下程序段:
int main()
{
int n[3]={1,2,3};
printf("%d\n",n[1]);
return 0;
}
程序运行后输出结果是( )。
选项:
• A. 1
• B. 2
• C. 3
• D. 4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 13. 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )。(假设a[0][0]位于数组的第一个位置上)
选项:
• A. i*m+j
• B. j*m+i
• C. i*m+j-1
• D. i*m+j+1
答案: 请关注公众号【渝粤搜题】查看答案
问题: 14. 若有说明int a[3][4];,则对数组a中元素的引用正确的是( )。
选项:
• A. a[2][4]
• B. a[1,3]
• C. a[1+1][0]
• D. a(2)(1)
答案: 请关注公众号【渝粤搜题】查看答案
问题: 15. 已知int m[5]={0,1,2,3,4},下列语句不正确的是( )。
选项:
• A. printf("%d",m[5]);
• B. printf("%d",m[0]);
• C. printf("%d",m[3]-m[3]);
• D. printf("%d",m[2]+m[2]);
答案: 请关注公众号【渝粤搜题】查看答案
问题: 16. 已知char c[5];,以下语句正确的是( )。
选项:
• A. scanf("%c", c[0]);
• B. scanf("%s", &c);
• C. scanf("%s", c[1]);
• D. c[0]=‘A’;
答案: 请关注公众号【渝粤搜题】查看答案
问题: 17. 若有说明int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( )。
选项:
• A. 2
• B. 3
• C. 4
• D. 无确定值
答案: 请关注公众号【渝粤搜题】查看答案
问题: 18. 下列对数组定义不正确的语句是( )。
选项:
• A. int m[5];
• B. char b[1]={‘a’,‘b’,‘c’,‘d’};
• C. int a[3]={1,2,3};
• D. char p[5];
答案: 请关注公众号【渝粤搜题】查看答案
问题: 19. 若有定义语句:
int a[8];
则以下表达式中不能代表数组元素a[1]地址的是( )。
选项:
• A. &a[0]+1
• B. &a[1]
• C. &a[0]++
• D. a+1
答案: 请关注公众号【渝粤搜题】查看答案
问题: 20. 对以下说明语句int a[10]={6,7,8,9,10};,理解正确的是( )。
选项:
• A. 对以下说明语句int a[10]={6,7,8,9,10};,理解正确的是( )。
• B. 将5个初值依次赋给a[0]至a[4]
• C. 将5个初值依次赋给a[6]至a[10]
• D. 因为数组长度与初值的个数不相同,所以此语句不正确
答案: 请关注公众号【渝粤搜题】查看答案
问题: 21. 下述对C语言字符数组的描述中错误的是( )。
选项:
• A. 字符数组可以存放字符串
• B. 字符数组中的字符串可以整体输入、输出
• C. 可以通过“a=b”将字符数组b整体赋值给字符数组a
• D. 不可以用关系运算符对字符数组中的字符串进行比较
答案: 请关注公众号【渝粤搜题】查看答案
问题: 22. 下面程序段的运行结果是( )。
char c[5]={'a','b','\0','c','\0'};
printf(“%s”,c);
选项:
• A. 'a''b'
• B. ab
• C. abc
• D. ab c
答案: 请关注公众号【渝粤搜题】查看答案
问题: 23. 数组的下标是从( )开始的。
选项:
• A. 0
• B. 1
• C. 2
• D. 3
答案: 请关注公众号【渝粤搜题】查看答案
问题: 24. 若有语句int a[12]={1,4,7,10,2,5,8,11,1,6,9,12},则a[a[8]]的值是( )。
选项:
• A. 1
• B. 4
• C. 7
• D. 10
答案: 请关注公众号【渝粤搜题】查看答案
问题: 25. 若有下面的程序段,则正确的是( )。
char a[3],b[]="China";
a=b;
printf("%s",a);
选项:
• A. 运行后将输出China
• B. 运行后将输出Ch
• C. 运行后将输出Chi
• D. 编译出错
答案: 请关注公众号【渝粤搜题】查看答案
问题: 26. 设有语句:char s1[12]={"string"};char s2[12]={"string\n"};则以下语句printf("%d,%d",strlen(s1),strlen(s2));的输出结果是( )。
选项:
• A. 5,6
• B. 6,7
• C. 7,7
• D. 7,8
答案: 请关注公众号【渝粤搜题】查看答案
问题: 27. 若有定义int a[][4]={5,6,8,7,2,4};,则该数组的元素个数是( )
选项:
• A. 6
• B. 7
• C. 8
• D. 9
答案: 请关注公众号【渝粤搜题】查看答案
问题: 28. 以下叙述中错误的是( )。
选项:
• A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
• B. 数组名代表的是数组所占存储区的首地址,其值不可改变
• C. 当程序执行时,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
• D. 可以通过初始化的方式确定数组元素的个数
答案: 请关注公众号【渝粤搜题】查看答案
问题: 29. 假定int类型变量占用两个字节,若有定义:
int x[10]={0,2,4};
则数组x在内存中所占字节数是( )。
选项:
• A. 3
• B. 6
• C. 10
• D. 20
答案: 请关注公众号【渝粤搜题】查看答案
问题: 30. 在C语言中引用数组元素时,其数组下标的数据类型允许是( )。
选项:
• A. 整型常量
• B. 整型表达式
• C. 整型常量或整型表达式
• D. 任何类型的表达式
答案: 请关注公众号【渝粤搜题】查看答案
问题: 31. 若有说明int a[][4]={0,0},则下面不正确的叙述是( )。
选项:
• A. 数组a的每个元素都可得到初值0
• B. 二维数组a的第一维大小为1
• C. 因为二维数组a中初值个数除以第二维大小的值的商小于等于1,故数组a的行数为1
• D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 32. 以下初始化语句错误的是( )。
选项:
• A. char c[10]="ABC";
• B. char s[3]={‘a’,‘b’,‘c’};
• C. char s[4]={‘a’,‘b’,‘\0’};
• D. char c[6]={"string"};
答案: 请关注公众号【渝粤搜题】查看答案
问题: 33. 若有定义char str[]={"INTEL\nCPU"};,则语句puts(str)执行后的显示结果是( )。
选项:
• A. INTEL(换行)CPU
• B. INTELCPU
• C. INTEL
• D. CPU
答案: 请关注公众号【渝粤搜题】查看答案
问题: 34. 若有说明char a[]="abcd";,则运行printf("%c",a[1])的结果是( )。
选项:
• A. abcd
• B. bcd
• C. a
• D. b
答案: 请关注公众号【渝粤搜题】查看答案
问题: 35. 下列对二维数组的定义和初始化正确的是( )。
选项:
• A. int n,a[n][n]={1,2,3, ,4};
• B. double a[1][2]={1.1,2.2,3.3,4.4};
• C. int a[2][2]={{1,3},{2,3}};
• D. float a[5][6]={};
答案: 请关注公众号【渝粤搜题】查看答案
问题: 36. 若有char str[3][20]={"computer","windows","Unix"};,则执行以下语句printf("%s\n",str[2])后,输出结果是( )。
选项:
• A. computer
• B. Windows
• C. Unix
• D. w
答案: 请关注公众号【渝粤搜题】查看答案
问题: 1. 以下程序运行后的输出结果是( )。
float fun(int x,int y)
{
return(x+y);
}
int main()
{
int a=2,b=5,c=8;
printf("%.1f\n",fun((int)fun(a+c,b),a-c));
return 0;
}
选项:
• A. 编译出错
• B. 9
• C. 21
• D. 9.0
答案: 请关注公众号【渝粤搜题】查看答案
问题: 2. 若调用函数时的实参为变量,以下关于函数形参和实参的叙述正确的是( )。
选项:
• A. 函数的实参和其对应的形参共占同一存储单元
• B. 形参只是形式上的存在,不占用具体存储单元
• C. 同名的实参和形参占同一存储单元
• D. 函数的形参和实参分别占用不同的存储单元
答案: 请关注公众号【渝粤搜题】查看答案
问题: 3. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。
选项:
• A. 地址传递
• B. 单向值传递
• C. 由实参传给形参,再由形参传回实参
• D. 传递方式由用户指定
答案: 请关注公众号【渝粤搜题】查看答案
问题: 4. 在定义任何一个函数时,下列选项中不可缺少的是( )。
选项:
• A. 函数名之前的数据类型
• B. 函数名之后的一对圆括号
• C. 形式参数声明
• D. 函数体中的语句
答案: 请关注公众号【渝粤搜题】查看答案
问题: 5. 若程序中定义了如下函数:
double myadd(double a,double b)
{
return (a+b);
}
将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是( )。
选项:
• A. double myadd(double a,b);
• B. double myadd(double,double);
• C. double myadd(double b,double a);
• D. double myadd(double x,double y);
答案: 请关注公众号【渝粤搜题】查看答案
问题: 6. 下面程序能对两个整型变量的值进行交换。以下说法正确的是( )。
int main()
{
int a=10,b=20;
printf("(1)a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("(2)a=%d,b=%d\n",a,b);
return 0;
}
int swap(int p,int q)
{
int t;
t=p;
p=q;
q=t;
}
选项:
• A. 该程序完全正确
• B. 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
• C. 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
• D. 以上说法都不对
答案: 请关注公众号【渝粤搜题】查看答案
问题: 7. 下面的函数func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));调用语句中func函数的实参个数是( )。
选项:
• A. 3
• B. 4
• C. 5
• D. 8
答案: 请关注公众号【渝粤搜题】查看答案
问题: 8. 以下说法正确的是( )。
选项:
• A. 用户若需调用标准库函数,调用前必须重新定义
• B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义
• C. 系统根本不允许用户重新定义标准库函数
• D. 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用
答案: 请关注公众号【渝粤搜题】查看答案
问题: 9. 下面函数func((exp1,exp2),(exp3,exp4,exp5));调用语句中含有实参的个数为( )。
选项:
• A. 1
• B. 2
• C. 4
• D. 5
答案: 请关注公众号【渝粤搜题】查看答案
问题: 10. 在C语言中以下不正确的说法是( )。
选项:
• A. 实参可以是常量、变量或表达式
• B. 形参可以是常量、变量或表达式
• C. 实参可以为任意类型
• D. 形参应与其对应的实参类型一致
答案: 请关注公众号【渝粤搜题】查看答案
问题: 11. 以下关于函数定义的叙述中,正确的是( )。
选项:
• A. 构成C语言源程序的基本单位之一是函数定义
• B. 所有被调用的函数必须在调用之前定义
• C. void main()函数定义必须放在其他函数定义之前
• D. void main()函数定义的函数体中必须至少有一条语句或声明
答案: 请关注公众号【渝粤搜题】查看答案
问题: 12. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。
选项:
• A. 函数调用可以作为独立的语句存在
• B. 函数调用可以作为一个函数的实参
• C. 函数调用可以出现在表达式中
• D. 函数调用可以作为一个函数的形参
答案: 请关注公众号【渝粤搜题】查看答案
问题: 13. 以下叙述中错误的是( )。
选项:
• A. 用户定义的函数中可以没有return语句
• B. 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
• C. 用户定义的函数中若没有return语句,则应当定义函数为void类型
• D. 函数的return语句中可以没有表达式
答案: 请关注公众号【渝粤搜题】查看答案
问题: 14. 若使用一维数组名做函数实参,则以下正确的说法是( )。
选项:
• A. 实参数组类型与形参数组类型可以不匹配
• B. 在被调函数中可以不考虑形参数组的大小
• C. 实参数组名必须与形参数组名一致
• D. 必须在主调函数中说明此数组的大小
答案: 请关注公众号【渝粤搜题】查看答案
问题: 15. 已知有函数定义:
int fun()
{
return(3,4);
}
则调用fun后的函数返回值是( )。
选项:
• A. 3
• B. 4
• C. 3和4
• D. 程序出错
答案: 请关注公众号【渝粤搜题】查看答案
问题: 16. 若有如下程序:
int fun(int a,int b)
{
if(a>b)
return(a);
else
return(b);
}
int main()
{
int x=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf(“%d\n”,r);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. 3
• B. 6
• C. 8
• D. 12
答案: 请关注公众号【渝粤搜题】查看答案
问题: 17. 已知函数f的定义如下:
int f(int a,int b)
{
if(a
选项:
• A. 2
• B. 3
• C. 2和3
• D. 3和2
答案: 请关注公众号【渝粤搜题】查看答案
问题: 18. 若有如下程序:
void f(int v,int w)
{
int t;
t=v;
v=w;
w=t;
}
int main()
{
int x=1,y=3,z=2;
if(x>y)
f(x,y);
else if(y>z)
f(y,z);
else
f(x,z);
printf("%d,%d,%d\n",x,y,z);
return 0;
}
执行后的输出结果是( )。
选项:
• A. 1,2,3
• B. 3,1,2
• C. 1,3,2
• D. 2,3,1
答案: 请关注公众号【渝粤搜题】查看答案
问题: 19. 以下说法正确的是( )。
选项:
• A. 定义函数时,形参的类型说明可以放在函数体内
• B. return后边的值不能为表达式
• C. 如果函数值的类型与返回值类型不一致,以函数值类型为准
• D. 如果形参与实参类型不一致,以实参类型为准
答案: 请关注公众号【渝粤搜题】查看答案
问题: 20. 若有如下程序:
int 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));
return 0;
}
输出结果是( )。
选项:
• A. 7
8
9
• B. 7
9
11
• C. 7
10
13
• D. 7
7
7
答案: 请关注公众号【渝粤搜题】查看答案
问题: 21. 在C语言中,函数的数据类型是指( )。
选项:
• A. 函数返回值的数据类型
• B. 函数形参的数据类型
• C. 调用该函数时的实参的数据类型
• D. 任意指定的数据类型
答案: 请关注公众号【渝粤搜题】查看答案
问题: 22. 若有如下程序:
int fun(int a,int b)
{
if(b==0)
return a;
else
return(fun(--a,--b));
}
int main()
{
printf("%d\n",fun(4,2));
return 0;
}
程序的运行结果是( )。
选项:
• A. 1
• B. 2
• C. 3
• D. 4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 23. C语言中函数返回值的类型是由( )决定的。
选项:
• A. return语句中表达式的类型
• B. 该函数定义时的类型
• C. 调用函数时的调用语句
• D. 根据结果
答案: 请关注公众号【渝粤搜题】查看答案
问题: 24. 下面对C语言的描述中,正确的是( )。
选项:
• A. 函数一定有返回值,否则无法使用函数
• B. 函数既可以嵌套定义又可以递归调用
• C. 调用函数时,只能将实参的值传递给形参
• D. 程序中有调用关系的所有函数都必须放在同一源程序文件中
答案: 请关注公众号【渝粤搜题】查看答案
问题: 25. 下列说法正确的是( )。
选项:
• A. C语言中允许定义空函数
• B. 空函数是一种错误的函数
• C. 空函数既没有函数头,也没有函数体
• D. 编程时,空函数没有任何用途
答案: 请关注公众号【渝粤搜题】查看答案
问题: 26. 将一个整数n,转换成字符串,以下说法正确的是( )。
选项:
• A. 只能使用递归函数实现
• B. 不能使用递归函数实现
• C. 可以使用递归函数实现
• D. 无法实现
答案: 请关注公众号【渝粤搜题】查看答案
问题: 27. 以下函数值的类型是( )。
fun(float x)
{
float y;
y=3*x-4;
return y;
}
选项:
• A. int
• B. 不确定
• C. void
• D. float
答案: 请关注公众号【渝粤搜题】查看答案
问题: 28. 若有如下函数:
fun(float x)
{
printf("%d\n",x*x);
}
则函数的类型是( )。
选项:
• A. 与参数x的类型相同
• B. 是void型
• C. 是int型
• D. 无法确定
答案: 请关注公众号【渝粤搜题】查看答案
问题: 29. 若有如下程序:
char fun(char x,char y)
{
if(x
选项:
• A. 函数调用出错
• B. 8
• C. 9
• D. 7
答案: 请关注公众号【渝粤搜题】查看答案
问题: 30. 下列函数定义中,出现编译错误的是( )。
选项:
• A. max(int x,int y,int z)
{
z=x>y?x:y;
return z;
}
• B. int max(int x,y)
{
int z;
z=x>y?x:y;
return z;
}
• C. max(int x,int y)
{
int z;
z=x>y?x:y;
return(z);
}
• D. int max(int x,int y)
{
return(x>y?x:y);
}
答案: 请关注公众号【渝粤搜题】查看答案
问题: 31. 若主调函数类型为double,被调函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调函数返回值的类型是( )。
选项:
• A. int
• B. float
• C. double
• D. 由系统当时的情况而定
答案: 请关注公众号【渝粤搜题】查看答案
问题: 32. 在C语言程序中,若对函数类型未加说明,则函数的隐含类型为( )。
选项:
• A. void
• B. double
• C. char
• D. int
答案: 请关注公众号【渝粤搜题】查看答案
问题: 33. 有如下函数定义:
void fun(int n,double x)
{
……
}
若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是( )。
选项:
• A. fun(int y,double m);
• B. k=fun(10,12.5);
• C. fun(x,n);
• D. void fun(n,x);
答案: 请关注公众号【渝粤搜题】查看答案
问题: 34. 下列关于函数定义的叙述中,正确的是( )。
选项:
• A. 函数可以嵌套定义,但不可以嵌套调用
• B. 函数不可以嵌套定义,但可以嵌套调用
• C. 函数不可以嵌套定义,也不可以嵌套调用
• D. 函数可以嵌套定义,也可以嵌套调用
答案: 请关注公众号【渝粤搜题】查看答案
问题: 35. 若用数组名作为函数调用的实参,传递给形参的是( )。
选项:
• A. 数组的首地址
• B. 数组第一个元素的值
• C. 数组中全部元素的值
• D. 数组元素的个数
答案: 请关注公众号【渝粤搜题】查看答案
问题: 36. 以下程序有语法错误,有关错误原因的正确说法是( )。
int main()
{
int G=5,k;
void prt_char();
...
k=prt_char(G);
...
return 0;
}
选项:
• A. 语句void prt_char();有错,它是函数调用语句,不能用void说明
• B. 变量名不能使用大写字母
• C. 函数说明语句和函数调用语句之间有矛盾
• D. 函数名不能使用下划线
答案: 请关注公众号【渝粤搜题】查看答案
问题: 1. 设有宏定义#define MAX(x,y) (x)>(y)?(x):(y),则F=MAX(2*4,3*4)的值为( )。
选项:
• A. 3
• B. 12
• C. 2
• D. 8
答案: 请关注公众号【渝粤搜题】查看答案
问题: 2. 宏定义#define PI 3.14中的宏名PI代替( )。
选项:
• A. 不确定类型的数
• B. 一个单精度实数
• C. 一个字符串
• D. 一个双精度实数
答案: 请关注公众号【渝粤搜题】查看答案
问题: 3. 若有以下宏定义:
#define N 2
#define f(n) ((N+1)*n)
则执行语句a=3*(N+f(5)); 后的结果是( )。
选项:
• A. a=51
• B. a=80
• C. a无确定值
• D. 语句有错误
答案: 请关注公众号【渝粤搜题】查看答案
问题: 4. 以下对宏替换的叙述不正确的是( )。
选项:
• A. 带参的宏替换在替换时,先求出实参表达式的值,然后代入形参运算求值
• B. 宏替换不占运行时间
• C. 宏名无类型,其参数也无类型
• D. 宏替换只是字符的替换
答案: 请关注公众号【渝粤搜题】查看答案
问题: 5. C程序中的宏展开是在( )。
选项:
• A. 编译前预处理时进行的
• B. 编辑时进行的
• C. 编译时进行的
• D. 程序执行时进行的
答案: 请关注公众号【渝粤搜题】查看答案
问题: 6. 若有宏定义如下:
#define MOD(x,y) x%y
则执行以下程序段的输出为( )。
int z, a = 15, b = 100;
z = MOD(b, a);
printf("%d\n", z++);
选项:
• A. 11
• B. 6
• C. 10
• D. 5
答案: 请关注公众号【渝粤搜题】查看答案
问题: 7. 设有宏定义#define SUB(x,y) (x)*y,且a=3,b=4,则 SUB(a++,b++)的值为( )。
选项:
• A. 12
• B. 20
• C. 16
• D. 13
答案: 请关注公众号【渝粤搜题】查看答案
问题: 8. 设有宏定义#define MA(x) x*(x-1),且a=1,b=2,则MA(1+a+b)的值为( )。
选项:
• A. 10
• B. 6
• C. 12
• D. 8
答案: 请关注公众号【渝粤搜题】查看答案
问题: 9. 以下叙述中,正确的是( )。
选项:
• A. 在以下定义中,C R 是称为"宏名"的标识符 #define C R 045
• B. 使用带参数的宏时,参数的类型应与宏定义时的一致
• C. 在程序的一行上可以出现多个有效的预处理命令行
• D. 宏替换不占用运行时间,只占编译时间
答案: 请关注公众号【渝粤搜题】查看答案
问题: 10. 若程序有宏定义:#define N 100,则以下叙述中,正确的是( )。
选项:
• A. 宏定义中,定义了标识符N的值为整数100
• B. 在运行时用100替换标识符N
• C. 对C源程序进行编译时用100替换标识符N
• D. 在编译程序对C源程序进行预处理时用100替换标识符N
答案: 请关注公众号【渝粤搜题】查看答案
问题: 11. 设有宏定义#define PI 3.14 和#define S(r) PI*r*r,则S(2)的值为( )。
选项:
• A. 9.42
• B. 6.28
• C. 3.14
• D. 12.56
答案: 请关注公众号【渝粤搜题】查看答案
问题: 12. 关于带参数的宏,下列说法正确的是( )。
选项:
• A. 宏展开时要进行内存单元的分配
• B. 宏展开时,不求参数的值,而只进行字符替换
• C. 宏展开只能得到一个结果
• D. 宏名无类型,但是它的参数是有类型的
答案: 请关注公众号【渝粤搜题】查看答案
问题: 13. 已知有宏定义#define SQR(a) 2*a*a,则SQR(3+4)的值为( )。
选项:
• A. 18
• B. 22
• C. 98
• D. 32
答案: 请关注公众号【渝粤搜题】查看答案
问题: 1. 若有以下说明:
char a[]="It is mine";
char *p="It is mine";
以下叙述不正确的是( )。
选项:
• A. a+1表示的是字符t的地址
• B. p指向另外的字符串时,字符串的长度不受限制
• C. p变量中存放的地址值可以改变
• D. a中只能存放10个字符
答案: 请关注公众号【渝粤搜题】查看答案
问题: 2. 若有以下说明语句:
char language[]={“FORTRAN”};
char *q=NULL;
q=language+2;
则语句printf(“%s\n”,*q);输出的是( )。
选项:
• A. language[2]元素的地址
• B. 字符串RTRANL
• C. language[2]元素的值,它是字符串FORTRAN的首地址
• D. 输出语句错误,无法得到输出结果
答案: 请关注公众号【渝粤搜题】查看答案
问题: 3. 若有以下程序段:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
则b中的值是( )。
选项:
• A. 5
• B. 6
• C. 7
• D. 9
答案: 请关注公众号【渝粤搜题】查看答案
问题: 4. 若有以下程序段:
int main()
{
int x[]={10,20,30};
int *px=x;
printf("%d,",++*px);
printf("%d,",*px);
px=x;
printf("%d,",(*px)++);
printf("%d,",*px);
px=x;
printf("%d,",*px++);
printf("%d,",*px);
px=x;
printf("%d,",*++px);
printf("%d\n",*px);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. 11,11,11,12,12,20,20,20
• B. 20,10,11,10,11,10,11,10
• C. 11,11,11,12,12,13,20,20
• D. 20,10,11,20,11,12,20,20
答案: 请关注公众号【渝粤搜题】查看答案
问题: 5. 若有说明:int *point=NULL,a=4; point=&a;,下面均代表地址的是( )。
选项:
• A. a,point,*&a
• B. &*a,&a,*point
• C. *&point,*point,&a
• D. &a,&*point,point
答案: 请关注公众号【渝粤搜题】查看答案
问题: 6. 若有以下程序:
int main()
{
char a[20]="I love China";
char *p=a;
printf("%c%s\n",*(a+2),p+1);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. I l
• B. l o
• C. o love
• D. l love China
答案: 请关注公众号【渝粤搜题】查看答案
问题: 7. 若 有以下程序:
int f(int b[][4])
{
int i,j,s=0;
for(j=0;j<4;j++)
{
i=j;
if(i>2)
i=3-j;
s+=b[i][j];
}
return s;
}
int main( )
{
int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
int *p=a;
printf("%d\n",f(p));
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. 12
• B. 11
• C. 18
• D. 16
答案: 请关注公众号【渝粤搜题】查看答案
问题: 8. 若有以下定义:
int a[10],*p=a;
则p+5表示( )。
选项:
• A. 元素a[5]的地址
• B. 元素a[5]的值
• C. 元素a[6]的地址
• D. 元素a[6]的值
答案: 请关注公众号【渝粤搜题】查看答案
问题: 9. 若有变量定义和函数调用语句:int a=25; print_value(&a);,下面函数的正确输出结果是( )。
void print_value(int *x)
{
printf(“%d\n”,++*x);
}
选项:
• A. 23
• B. 24
• C. 25
• D. 26
答案: 请关注公众号【渝粤搜题】查看答案
问题: 10. 若有以下程序:
void fun(char *c,int d)
{
*c=*c+1;
d=d+1;
printf("%c,%c,",*c,d);
}
int main()
{
char a='A',b='a';
fun(&b,a);
printf("%c,%c\n",a,b);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. B,a,B,a
• B. a,B,a,B
• C. A,b,A,b
• D. b,B,A,b
答案: 请关注公众号【渝粤搜题】查看答案
问题: 11. 若有以下程序:
int main()
{
char a[]="programming",b[]="language";
char *p1,*p2;
int i;
p1=a;
p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i))
printf("%c",*(p1+i));
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. gm
• B. Rg
• C. or
• D. ga
答案: 请关注公众号【渝粤搜题】查看答案
问题: 12. 下面程序段的运行结果是( )。
char *s="abcde";
s+=2;
printf("%s",s);
选项:
• A. cde
• B. 字符'c'
• C. 字符'c'的地址
• D. 无确定的输出结果
答案: 请关注公众号【渝粤搜题】查看答案
问题: 13. 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )。
选项:
• A. c=*p1+*p2;
• B. p2=c
• C. p1=p2
• D. c=*p1*(*p2);
答案: 请关注公众号【渝粤搜题】查看答案
问题: 14. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( )。
选项:
• A. char s[10]="abcdefg";
• B. char t[]="abcdefg",*s=t;
• C. char s[10];s="abcdefg";
• D. char s[10];strcpy(s,"abcdefg");
答案: 请关注公众号【渝粤搜题】查看答案
问题: 15. 若有以下定义:
int a[]={2,4,6,8,10,12},*p=a;
则*(p+1)和*(a+5)的值是( )。
选项:
• A. 4,12
• B. 3,7
• C. 4,10
• D. 6,10
答案: 请关注公众号【渝粤搜题】查看答案
问题: 16. 若有以下程序:
void sum(int *a)
{
a[0]=a[1];
}
int main( )
{
int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;i>=0;i--)
sum(&aa[i]);
printf("%d\n",aa[0]);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. 4
• B. 3
• C. 2
• D. 1
答案: 请关注公众号【渝粤搜题】查看答案
问题: 17. 若有以下程序:
int main()
{
int m=1,n=2,*p=&m,*q=&n,*r;
r=p;
p=q;
q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. 1,2,1,2
• B. 1,2,2,1
• C. 2,1,2,1
• D. 2,1,1,2
答案: 请关注公众号【渝粤搜题】查看答案
问题: 18. 若有说明:int *p=NULL,m=5,n;,以下程序段正确的的是( )。
选项:
• A. p=&n;
scanf("%d",&p);
• B. p=&n;
scanf("%d",*p);
• C. scanf("%d",&n);
*p=n;
• D. p=&n;
*p=m;
答案: 请关注公众号【渝粤搜题】查看答案
问题: 19. 若要对a进行++运算,则a应具有如下说明( )。
选项:
• A. int a[3];
• B. char a="12”;
• C. char(*a)[3];
• D. int b[10], *a=b;
答案: 请关注公众号【渝粤搜题】查看答案
问题: 20. 若有以下程序:
int main()
{
int a=1,b=3,c=5;
int *p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf("%d\n",c);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. 1
• B. 2
• C. 3
• D. 4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 21. 若有以下程序:
int main()
{
char a;
char *str=&a;
strcpy(str,"hello");
puts(str);
return 0;
}
程序运行后的输出结果是( )。
选项:
• A. hello
• B. null
• C. h
• D. 发生异常
答案: 请关注公众号【渝粤搜题】查看答案
问题: 22. 变量的指针,其含义是指该变量的( )。
选项:
• A. 值
• B. 地址
• C. 名
• D. 一个标志
答案: 请关注公众号【渝粤搜题】查看答案
问题: 23. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。
int main()
{
int *p=NULL,*q=NULL,a,b;
p=&a;
printf(“input a:”);
scanf(“%d”,*p);
……
return 0;
}
选项:
• A. *p表示的是指针变量p的地址
• B. *p表示的是变量a的值,而不是变量a的地址
• C. *p表示的是指针变量p的值
• D. *p只能用来说明p是一个指针变量
答案: 请关注公众号【渝粤搜题】查看答案
问题: 24. 若有以下定义:
int a[5]={11,43,23,45,8},*p=a;
则对数组a中元素的正确引用是( )。
选项:
• A. *&a[5]
• B. a+2
• C. *(p+5)
• D. *(a+2)
答案: 请关注公众号【渝粤搜题】查看答案
问题: 25. 若有sizeof(int)值为2字节,则定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是( )。
选项:
• A. p向高地址移了一个字节
• B. p向高地址移了一个存储单元
• C. p向高地址移了两个字节
• D. p与a+1等价
答案: 请关注公众号【渝粤搜题】查看答案
问题: 26. 若有以下定义:
int arr[]={6,7,8,9,10};
int *ptr=NULL;
ptr=arr;
*(ptr+2)+=2;
printf("%d,%d\n",*ptr,*(ptr+2));
则程序段的输出结果为( )。
选项:
• A. 8,10
• B. 6,8
• C. 7,9
• D. 6,10
答案: 请关注公众号【渝粤搜题】查看答案
问题: 1. 当定义一个结构体变量时,系统为它分配的内存空间是( )。
选项:
• A. 结构体中一个成员所需的内存容量
• B. 结构体中第一个成员所需的内存容量
• C. 结构体中占内存容量最大者所需的容量
• D. 结构中各成员所需内存容量之和
答案: 请关注公众号【渝粤搜题】查看答案
问题: 2. 结构体变量成员的引用方式是使用( )运算符。
选项:
• A. .
• B. &
• C. *
• D. +
答案: 请关注公众号【渝粤搜题】查看答案
问题: 3. 设有以下说明语句
struct ex
{
int x;
float y;
char z;
}example;
则下面的叙述中不正确的是( )。
选项:
• A. struct ex是结构体类型名
• B. example是结构体类型名
• C. x,y,z都是结构体成员名
• D. struct是结构体类型的关键字
答案: 请关注公众号【渝粤搜题】查看答案
问题: 4. 定义以下结构体数组
struct date
{
int year;
int month;
int day;
};
struct s
{
struct date birthday;
char name[20];
}x[4]={{2008,10,1,"guangzhou"},{2009,12,25,"Tianjin"}};
语句printf("%s,%d",x[0].name,x[1].birthday.year);的输出结果为( )。
选项:
• A. guangzhou,2009
• B. guangzhou,2008
• C. Tianjin,2008
• D. Tianjin,2009
答案: 请关注公众号【渝粤搜题】查看答案
问题: 5. 运行下列程序,输出结果是( )。
struct contry
{
int num;
char name[20];
}x[5]={1,”China”,2,”USA”,3,”France”,4,”Englan”,5,”Spanish”};
int main()
{
int i;
for(i=3;i<5;i++)
printf("%d%c”,x[i].num,x[i].name[0]);
return 0;
}
选项:
• A. 3F4E5S
• B. 4E5S
• C. F4E
• D. c2U3F4E
答案: 请关注公众号【渝粤搜题】查看答案
问题: 6. 根据下面的定义,能输出Mary的语句是( )。
struct person
{
char name[9];
int age;
}
struct person class[5]={“John”,17,“Paul”,19,“Mary”,18,“Adam”,16};
选项:
• A. printf(“%s\n”,class[1].name);
• B. printf(“%s\n”,class[2].name);
• C. printf(“%s\n”,class[3].name);
• D. printf(“%s\n”,class[0].name);
答案: 请关注公众号【渝粤搜题】查看答案
问题: 7. 下列关于结构体类型与结构体变量的说法中,错误的是( )。
选项:
• A. 结构体类型与结构体变量是两个不同的概念,其区别如同int类型与int型变量的区别一样
• B. 结构体可将不同数据类型但互相关联的一组数据,组合成一个有机整体使用
• C. 结构体类型名和数据项的命名规则,与变量名相同
• D. 结构体类型中的成员名,不可与程序中的变量同名
答案: 请关注公众号【渝粤搜题】查看答案
问题: 8. 定义以下结构体数组
struct date
{
int year;
int month;
};
struct s
{
struct date birth;
char name[20];
}x[4]={{2008,8,"hangzhou"},{2009,3,"Tianjin"}};
语句printf("%c,%d",x[1].name[1],x[1].birth.year);的输出结果为( )
选项:
• A. a,2008
• B. hangzhou,2008
• C. i,2009
• D. Tianjin,2009
答案: 请关注公众号【渝粤搜题】查看答案
问题: 9. 下列程序的运行结果是( )。
struct KeyWord
{
char key[20];
int ID;
}kw[]={"void",1,"char",2,"int",3,"float",4,"double",5};
int main()
{
printf("%c,%d\n",kw[3].key[0],kw[3].ID);
return 0;
}
选项:
• A. i,3
• B. n,3
• C. f,4
• D. l,4
答案: 请关注公众号【渝粤搜题】查看答案
问题: 10. 下面对结构体变量的叙述中错误的是( )。
选项:
• A. 相同类型的结构体变量间可以相互赋值
• B. 通过结构变量,可以任意引用它的成员
• C. 结构变量中某个成员与这个成员类型相同的简单变量间可以互相赋值
• D. 结构变量与简单变量间可以赋值
答案: 请关注公众号【渝粤搜题】查看答案
问题: 11. 运行下列程序段,输出结果是( )。
struct country
{
int num;
char name[10];
}s[5]={ 1,"China",2,"USA",3,"France",4,"England",5,"Spanish"};
语句printf("%d,%c",s[2].num, s[2].name);的输出结果为( )。
选项:
• A. 3,France
• B. 2,USA
• C. 4,England
• D. 5,Spanish
答案: 请关注公众号【渝粤搜题】查看答案
问题: 12. 定义以下结构体数组
struct c
{
int x;
int y;
}s[2]={1,3,2,7};
语句printf(“%d”,s[0].x*s[1].x);的输出结果是( )。
选项:
• A. 14
• B. 6
• C. 2
• D. 21
答案: 请关注公众号【渝粤搜题】查看答案
微信扫码添加好友
如二维码无法识别,可拨打 13662661040 咨询。