C语言试题

请问下面几个题的答案是什么?
第11题 在C语言中,整型数可用_____表示
A、十进制
B、八进制
C、十六进制
D、前面3种均可

第12题 在C语言中,二维数组元素在内存中的存放顺序是_____
A、按行存放
B、按列存放
C、行、列均可
D、用户指定

第13题 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是____
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参返回实参
D、传递方式由用户指定

第14题
下面程序的输出结果是_____

void main() { int n=4 ; while(n- -) printf("%2d",- -n) ; }

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

第15题 C语言中函数返回值的类型由_____决定
A、return语句中的表达式的类型
B、主调函数的类型
C、调用函数时的临时类型
D、定义函数时所指定的类型

第16题 有循环:while(1){……} 则下列正确的描述是_____
A、无限循环
B、一次循环也不做
C、循环一次
D、语法错

第17题 有数组定义:int a[ ] = "China"; 则数组a所占的内存字节数为____
A、4
B、5
C、6
D、7

第18题 对数组a和b进行初始化:char a[ ]="abcdef",b[ ]={'a','b','c','d','e','f'}; 则以下叙述正确的是______
A、数组a与数组b完全相同
B、数组a与数组b长度相同
C、数组a比数组b长度长
D、数组a比数组b长度短

第19题 若有以下说明语句: char *sp = “\txyz\\\n”; 则strlen (sp) 的值为____
A、9
B、8
C、7
D、6

第20题
以下程序的输出结果____。

main()

{ int i,j,x=0;

for(i=0;i<2;i++) {

x++;

for(j=0;j<=3;j++) {

if(j%2)

continue;

x++;

}

x++;

}

printf("x=%d",x);

}

A、x=4
B、x=8
C、x=6
D、x=12

第1个回答  2008-01-09
答案:DABAD ACCDB
11. D(十进制数如4,八进制数如04,十六进制数如0x4)
12. A(规定)
13. B(规定)
14. A(第一次输出,先判断4!=0,再n=n-1=3,再执行循环体,此时,先n=n-1=2,再输出2;第二次循环,同理输出为0)
15. D(若return了浮点型,但定义为整型,函数在返回值时要把浮型截取为整型)
16. A(条件非0即为真)
17. C(题目考查字符串常量所占字节数还包括一个字符串结束标志'\0',但本题题干中的int改为char更恰当)
18. C(数组a的长度为7,内容分别是字符:abcdef及'\0',而数组b的长度为6,内容:abcdef)
19. D(strlen()函数的返回值是字符串的有效长度,不算结束标志'\0',而该字符串的有效字符包括6个,分别是:'\t'(即控制字符tab),'x','y','z','\\'(即字符\)'\n'(即控制字符换行))
20. B(当i=0时,x++得1,进入内层for循环,该循环功能是j为奇数时x加1,所以当j=1及3时x自增了共两次,此时x得3,然后又x++得4,第二次大循环即当i=1时,同理,x的值又增了4,最终得8)本回答被提问者采纳
第2个回答  2008-01-09
AADCD
ACCDB

第17题写错了
int a[]="china" 是不合法的
char a[]="china" 这样才对
第3个回答  2008-01-09
D
A
D
C
D
A
C
C
D
B
第4个回答  2020-10-28
d是正解。
a:错误在于printf有返回值,如果函数调用成功,返回1.
b:循环表达式结果是数值型,不可能是字符型‘0’。
c:既然printf返回一个int类型,在c中完全可以用作条件判断,故合法。
第5个回答  2020-10-03
第一题楼上已经回答了,我就从第二题开始回答;
2.①冒泡法:
#include<stdio.h>
#define
n
10
void
main()
{
int
i,j;
int
a[n],t;
printf("请输入%d个整数:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
//进行n-1轮比较交换
{
for(j=n-1;j>i;j--)//冒泡法
if(a[j-1]>a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
printf("冒泡法排序结果:\n");
for(i=0;i<n;i++)
printf("%d
",a[i]);
printf("\n");
}
②选择排序法:
#include<stdio.h>
#define
n
10
void
main()
{
int
i,j,k,t;
int
a[n];
printf("请输入%d个整数:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)//重复n-1趟选择
{
k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])
k=j;
if(k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
for(i=0;i<n;i++)
printf("%d
",a[i]);
printf("\n");
}
3.杨辉三角:
#include<stdio.h>
#define
m
15
void
main()
{
int
a[m];
int
b[m];
a[0]=a[1]=b[0]=b[1]=1;
int
i,j,n;
printf("%d\n",a[0]);
printf("%d
%d\n",b[0],b[1]);
for(i=3;i<=m;i++)
{
if(i%2!=0)
{
for(n=1;n<i-1;n++)
a[n]=b[n-1]+b[n];
a[i-1]=1;
for(n=0;n<i;n++)
printf("%d
",a[n]);
}
else
{
for(n=1;n<i-1;n++)
b[n]=a[n-1]+a[n];
b[i-1]=1;
for(n=0;n<i;n++)
printf("%d
",b[n]);
}
printf("\n");
}
}
3.求阶乘:
#include<stdio.h>
#define
n
10
void
main()
{
int
i,n;
double
s=1;
printf("请输入需求阶乘的数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
s*=i;
printf("%f\n",s);
}
第5题:实在找不出规律。多写一点可能会发现规律。