1以下选项中合法的实型常数是()。
A.5E2.0
B.1.3E
C.E-3
D..2E0
2下列表达式中,可作为C合法表达式的是()。
A.(3,2,1,0)
B.3/2/1/0
C.3=2=1=0
D.[3,2,1,0]
3以下不符合C语言语法的赋值语句是()。
A.a=b=5;
B.a=1,b=2
C.++j;
D.y=(a=3,6*5);
4以下选项中,与k=n++完全等价的表达式是()。
A.k=n,n=n+1
B.n=n+1,k=n
C.k+=n+1
D.k=++n
5在C语言中,要求运算数必须是整型或字符型的运算符是()。
A.||
B.&
C.&&
D.!
6以下数据中,不正确的数值或字符常量是()。
A.50
B.c
C.0xaa
D.66
7已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是
A.6
B.1
C.0
D.2
8以下标识符中,不能作为合法的C用户定义标识符的是()。
A._double
B.INT
C._123
D.putchar
9若int a=3,则执行完表达式a-=a+=a*a后,a的值是
A.-15
B.0
C.-9
D.-3
10判断char型变量cl是否为小写字母的正确表达式是()。
A.(cl>=a)&&(cl<=z)
B.'a'<=cl<='z'
C.('a'>=cl)||('z'<=cl)
D.(cl>='a')&&(cl<='z')
11下列变量定义中合法的是()。
A.short _a=1-.1e-1;
B.long do=0xfdaL;
C.double b=1+5e2.5;
D.float 2_and=1-e-3;
12若变量a与i已正确定义,且i已正确赋值,合法的语句是()。
A.a=a++=5;
B.++i;
C.a==1
D.a=int(i);
13已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是______。
A.非法的常量
B.字符a
C.字符e
D.字符A
14double x;scanf("%lf",&x);不可以赋值给x变量的常量是()。
A.A'
B.100000
C."abc"
D.123
15sizeof(float)是()。
A.一个浮点表达式
B.一个不合法的表达式
C.一种函数调用
D.一个整型表达式
16下列选项中,合法的C语言关键字是()。
A.cher
B.integer
C.VAR
D.default
17不合法的八进制数是
A.01
B.0
C.07700
D.028
18设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
A.3
B.0
C.1
D.2
19以下所列的C语言常量中,错误的是()。
A.'\72'
B.0xFF
C.2L
D.1.2e0.5
20C语言中,char类型数据占()。
A.2个字节
B.8个字节
C.4个字节
D.1个字节
21若变量已正确定义并赋值,下面符合C语言语法的表达式是()。
A.int 18.5%3
B.a:=b+1
C.a=a+7=c+b
D.a=b=c+2
22已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用
八进制表示的字符常量'\101'是()。
A.字符e
B.字符a
C.非法的常量
D.字符A
23如果int a=2,b=3,c=0,下列描述正确的是
A.a||(b=c)执行后b的值为0
B.a>b!=c和a>(b!=c)的执行顺序是一样的
C.a&&b>c的结果为假
D.!a!=(b!=c)表达式的值为1
24设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为().
A.float
B.int
C.double
D.char
25以下叙述中不正确的是()。
A.在C程序中,赋值运算符的优先级最低
B.在C程序中,j++;是一条赋值语句
C.C程序中的#include和#define均不是C语句
D.一个好的程序应该有详尽的注释
26已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是()。
A.语法错
B.0
C.1
D."假"
27以下叙述中正确的是
A.在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式
B.a是实型变量,C允许以下赋值a=10,因此可以这样说实型变量中允许存放整型值。
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b 的值,b的值由原值变为0
D.已有a=3, b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3
28以下选项中不合法的用户标识符是
A.Dim
B.printf
C._123
D.A$
29若变量已正确定义且 k 的值是 4,计算表达式 ( j =4, k--) 后,j和k的值为
A.j=3, k=3
B.j=4, k=4
C.j=3, k=4
D.j=4, k=3
30下列变量中合法的是
A.B.C.Tom
B.3a6b
C._6a7b
D.$ABC
31若有以下程序段,c3中的值是
int c1 = 1, c2 = 2, c3;
c3 = c1 / c2;
A.0.5
B.1
C.1/2
D.0
32下列程序段的输出结果为()。float k=0.8567;
printf("%06.1f%%",k*100);
A.0085.7%
B..857
C.0085.6%
D.0085.6%%
33以下程序的输出结果是()。
main()
{float x=3.6;
int i;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A.x=3 i=3.600000
B.x=3.600000,i=4
C.x=3,i=3
D.x=3.600000,i=3
34以下程序的输出结果是()。
main()
{int i,j,k,a=3,b=2;
i=(--a==b++)?--a:++b;
j=a++;k=b;
printf("i=%d,j=%d,k=%d\n",i,j,k); }
A.i=1,j=1,k=2
B.i=2,j=1,k=3
C.i=1,j=1,k=3
D.i=4,j=2,k=4
35下列程序的输出结果是()。
main()
{int a=011;
printf("%d\n",++a);
}
A.12
B.10
C.11
D.9
36若有以下程序段,其输出结果是
int a = 0, b = 0, c = 0;
c = ( a -= a - 5), (a = b, b+3);
printf("%d,%d,%d\n",a, b, c);
A.0,0,-10
B.0,0,5
C.-10,3,-10
D.3,3,-10
37执行下列程序后,其输出结果是()。
main()
{int a=9;
a+=a-=a+a;
printf("%d\n",a);
}
A.18
B.-18
C.-9
D.9
38若变量已正确定义,以下程序段的输出结果是
x=5.16894;
printf("%f\n", (int)(x*1000+0.5)/(float)1000);
A.5.17000
B.输出格式说明与输出项不匹配,输出无定值
C.5.168000
D.5.169000
39下列程序的输出结果为()。
main()
{ int m=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
A.28.000000
B.27.500000
C.28.500000
D.27.000000
40以下程序的输出结果是
main()
{ int w = 4, x = 3, y = 2, z = 1;
printf("%d\n", (w < x) ? w: z < y ? z: x)); }
A.2
B.4
C.1
D.3
41C语言的if语句中,用作判断的表达式为
A.关系表达式
B.逻辑表达式
C.任意表达式
D.算术表达式
42运行以下程序后,输出的结果是
main()
{ int k = -3;
if(k <= 0)
printf("****\n"),
else printf("&&&&\n");
}
A.****
B.有语法错误不能通过编译
C.&&&&
D.****&&&&
43下列程序的输出结果是()。
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:
switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A.a=2,b=1
B.a=2,b=2
C.a=1,b=0
D.a=1,b=1
44在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式()。
A.只能用关系表达式
B.只能用逻辑表达式
C.只能用逻辑表达式或关系表达式
D.可用任意表达式
45C语言中,switch后的括号内表达式的值可以是
A.只能为整型和字符型
B.只能为整型
C.任何类型
D.只能为整型,字符型,枚举型
46为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定: else子句总是与()配对。
A.其之后最近的if
B.其之前最近的if
C.缩排位置相同的if
D.同一行上的if
47有以下程序
main()
{
int i=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是
A.2,2,2
B.2,2,3
C.1,1,2
D.2,2,1
48有如下程序
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);
}
该程序的输出结果是
A.a=1,b=1
B.a=2,b=1
C.a=1,b=0
D.a=2,b=2
49有以下程序
main()
{
int a=5, b=4, c=3, d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1 >= d) == 1)
printf("%d\n",d+1);
else printf("%d\n",d+2);
}
执行后输出结果是
A.2
B.4
C.编译时出错
D.3
50下列运算符中优先级别最高的是
A.!
B.%
C.-=
D.&&
95,当运行以下程序时输入OPEN THE DOOR
char fun(char *c)
{
if(*c <= 'Z' && *c >= 'A' )
*c -= 'A' - 'a';
return *c;
}
main()
{
char s[8], *p = s;
gets(s);
while(*p)
{
*p = fun( p );
putcahr(*p); p++;
}
putchar('\n');
}
A.oPEN tHE dOOR
B.Open The Door
C.open the door
D.OPEN THE DOOR
94若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的
地址的是()。
A.&aa[0]+1
B.aa+1
C.&aa[1]
D.&aa[0]++
93以下程序的输出结果是
void fun(flaot *a, float *b)
{ float w;
*a = *a + *a;
w = *a;
*a = *b;
*b = w;
}
main()
{ float x = 2.0; y = 3.0;
float *px = &x, *py = &y;
fun(px, py);
printf("%2.0f,%2.0f\n", x, y);
}
A.2, 3
B.3, 4
C.3, 2
D.4, 3
92int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是()。
A.3
B.4
C.不一定
D.2
91以下程序的输出结果是
main()
{
char ch[2][5] = {"6937", "8254"}, *p[2];
int i, j, s = 0;
for(i = 0; i < 2; i++)
p[i] = ch[i];
for(i = 0; i < 2; i++)
for(j = 0; p[i][j] > '\0' && p[i][j] <= '9'; j += 2)
s = 10 * s+ p[i][j] - '0';
pritnf("%d\n", s);
}
A.69825
B.693825
C.6385
D.63825
90.C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为
A..c
B..bas
C..obj
D..exe
89.以下程序的输出结果是
#define FMT "%d,"
main()
{
int b[][4] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23};
printf(FMT, *(*(b+1)+1));
printfFMT, b[2][2]);
}
A.1£?11£?
B.1£?11
C.11£?21
D.11£?21£?
88.宏定义#define PI 3.14中的宏名PI代替
A.不确定类型的数
B.一个单精度实数
C.一个字符串
D.一个双精度实数
87.以下描述中,正确的是()。
A.预处理指令只能位于C源文件的开始
B.预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
C.预处理是指完成宏替换和文件包含中指定的文件的调用
D.C源程序中凡是行首以#标识的控制行都是预处理指令
86.若要说明一个类型名STP,使得定义语句STP s等价于char *s,
以下选项中正确的是()。
A.typedef char* STP;
B.typedef *char STP;
C.typedef stp *char;
D.typedef STP char *s;
85.以下函数调用语句中实参的个数是()。
exce((v1,v2),(v3,v4,v5),v6);
A.6
B.5
C.4
D.3
84.C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。
A.int
B.void
C.char
D.double
83.以下正确的说法是
A.如果形参与实参的类型不一致,以实参类型为准
B.如果函数值的类型与返回值的类型不一致,以函数值类型为准
C.定义函数时,形参的类型说明可以在函数体内
D.return后面的表达式不能是函数
82.C语言规定,函数返回值的类型是由()。
A.调用该函数时的主调函数类型所决定
B.return语句中的表达式类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型所决定
81.以下程序的输出结果是
long fib( int n )
{
if(n > 2)
return (fib(n-1) + fib(n - 2));
else return (2);
}
main()
{ printf("%dld", fib(6) ): }
A.2
B.16
C.30
D.8
80.在C语言的函数中,下列正确的说法是()。
A.数组名不能作形参
B.形参必须是变量名
C.必须有形参
D.可以有也可以没有形参
79.执行下面程序后,输出结果是()。
main()
{ a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
int max(x,y)
{ int x,y;
int z;
if(x>y) z=x;
else z=y;
return(z);
}
A.18
B.27
C.72
D.45
78.关于return语句,下列正确的说法是()。
A.必须在每个函数中出现
B.不能在主函数中出现且在其他函数中均可出现
C.只能在除主函数之外的函数中出现一次
D.可以在同一个函数中出现多次
77.以下只有在使用时才为该类型变量分配内存的存储类说明是()。
A.auto和 static
B.auto和 register
C.register和 static
D.extern和 register
76.以下正确的说法是:在C语言中()。
A.实参和与其对应的形参各占用独立的存储单元
B.形参是虚拟的,不占用存储单元
C.只有当实参和与其对应的形参同名时才共占用存储单元
D.实参和与其对应的形参共占用一个存储单元
75.以下定义语句中,错误的是()。
A.char *a[3];
B.int a[]={1,2};
C.char s[10]="test";
D.int n=5,a[n];
74. 若有定义语句:char c[5]={'a','b','\0','c','\0'};,则执行语句pritnf("%s", c);的结果是
A.ab c
B.ab\0c
C.'a''b'
D.ab
73. static char str[10]="China";数组元素个数为()。
A.5
B.10
C.6
D.9
72.以下对整型数组a的正确说明是:
A.int n = 10, a[n];
C.
D.int a(10);
71.以下不能对二维数组a进行正确初始化的语句是()。
A.int a[2][3]={0};
B.int a[2][3]={{1,2},{3,4},{5,6}};
C.int a[][3]={{1,2},{0}};
D.int a[][3]={1,2,3,4,5,6};
70.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。
A.char s[10];strcpy(s,"abcdefg");
B.char s[10]="abcdefg";
C.char t[]="abcdefg",*s=t;
D.char s[10];s="abcdefg"
69.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.任何类型的表达式
B.整型常量
C.整型表达式
D.整型常量或整型表达式;
68.以下程序的输出结果是
min()
{ int n[2] ={0}, i, j, k = 2;
for(i = 0; i < k; i++)
for(j = 0; j < k; j++)
n[j] = n[i] +1;
pritnf("%d\n", n[k]);
}
A.2
B.1
C.3
D.不确定的值
67.下面程序的运行结果是
main()
{ char ch[7] = "65ab21";
int i, s = 0;
for(i=0;ch[i]>='0'&&ch[i]<='9'; i += 2)
s = s*10+ch[i]-'0';
printf("%d\n", s);
}
A.62
B.6521
C.12ba56
D.6
66.在C语言中,一维数组的定义方式为:类型说明符数组名()。
A.[整型表达式]
B.[整型常量]或[整型表达式]
C.[常量表达式]
D.[整型常量]
65.C语言中 while 和 do-while 循环的主要区别是()。
A.while的循环控制条件比 do-while的循环控制条件更严格
B.do-while 的循环体至少无条件执行一次
C.do-while 的循环体不能是复合语句
D.do-while 允许从外部转到循环体内
64.以下程序的执行结果是main()
{ int x = 0, s = 0;
while( !x != 0 ) s += ++x;
printf( "%d ",s );
}
A..无限循环
B.0
C.1
D.语法错误
63.C语言中用于结构化程序设计的三种基本结构是()。
A.for、while、do-while
B.顺序结构、选择结构、循环结构
C.if、switch、break
D.if、for、continue
62.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为"真"或"假"。哪个数作为逻辑"假"值()。
A.-1
B.非零的数
C.1
D.0
61.以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);()。
A.4次
B.是无限循环
C.3次
D.循环次数不定
60.以下叙述正确的是()。
A.do-while语句构成的循环不能用其它语句构成的循环来代替.
B.用do-while语句构成的循环,在while后的表达式为零时结束循环
C.用do-while语句构成的循环,在while后的表达式为非零时结束循环.
D.do-while语句构成的循环只能用break语句退出.
59.以下程序段的输出结果是。
int n=10;
while(n>7)
{ n--;
printf("%d", n );
}
A.1098
B.10987
C.987
D.9876
58.设j和k都是int类型,则下面的for循环语句()。
for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);
A.最多执行9次
B.循环体一次也不执行
C.最多执行10次
D.是无限循环
57.C 语言程序的三种基本结构是顺序结构、选择结构和______结构.
A.递归
B.转移
C.嵌套
D.循环
56.语句while(!E);中的表达式!E等价于()。
A.E!=1
B.E==0
C.E==1
D.E!=0
55.以下程序的输出结果是
#include
main()
{
int i;
for(i = 1; i < 5; i++)
{
if(i % 2)
putchar('<');
else
continue;
putchar('>');
}
putchar ('#');
}
A.< > < > < > #
B.> < > < #
C.< > < > #
D.> < > < > < #
54.在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是()。
A.(E==0)
B.(E>0||E<0)
C.(!E==0)
D.(E!=0)
53.下面程序的运行结果是
#include
main()
{
int y=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
A.0
B.1
C.8
D.-1
52.下面有关 for 循环的正确描述是()。
A.for 循环是先执行循环循环体语句,后判断表达式
B.在 for 循环中,不能用 break 语句跳出循环体
C.for 循环只能用于循环次数已经确定的情况
D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
51.以下程序段的输出结果是
int i, j, m = 0;
for(i = 1; i <= 15; i += 4)
for(j = 3; j <= 19; j += 4)
m++;
printf("%d\n", m);
A.15
B.12
C.20
D.25
1 若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(_____ ,x/y);补充完整,
使其输出的计算结果形式为:x/y=11
2 表达式(int)((double)(5/2)+2.5)的值是_____.
3 若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____。
4 在C语言程序中,用关键字_____定义基本整型变量,用关键字_____定义单精度实型变量,用关键字_____定义双精度实型变量。
5 表达式3.5 + 1 / 2的计算结果是_____。
6 变量i、j、k已定义为int类型并赋初值0,用以下语句输入时
scanf("%d", &i); scanf("%d", &j); scanf("%d", &k);
当执行第一个输入语句时从键盘输入:
12.3
则变量i、j、k的值分别是_____、_____、_____
7 若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入
10、20、30、40,正确的输入形式是_____。请用
scanf("%d%c%d%c%d%c%d%c", &w, &a, &x,&b, &y, &c, &z, &d);
8 以下程序段的输出结果是_____、_____、_____、_____
double a = 513.789215;
printf("a = %8.6f, a = %8.2f, a = %14.8f, a = %14.8lf\n", a, a, a, a);
9 若有以下定义,请写出以下程序段中输出语句执行后的结果。
(1)_____(2)_____(3)_____
int i = -200, j =2500;
printf("(1) %d %d", i, j);
printf("(2) i = %d, j = %d\n", i, j);
printf("(3) i = %d\n j = %d\n", i, j);
10 若有以下说明和输入语句,要求给c1、c2、c3输入字符A、B和C,请写出从键盘正确输入数据的形式是_____。
char c1, c2, c3;
scanf("%4c", &c1);
scanf("%4c", &c2);
scanf("%4c", &c3);
11 请写出与以下表达式等价的表达式是 A)_____B)_____。
A)!(x>0) B)!0
12 请写出以下程序的输出结果_____。
main()
{ int a = 100;
if( a > 100) printf("%d\n", a > 100);
else printf("%d\n", a <= 100);
}
13 将上题中的双分支if语句改写成条件表达式语句:_____
main()
{ int a = 100;
if( a > 100) printf("%d\n", a > 100);
else printf("%d\n", a <= 100);
}
14以下程序的输出结果是_____。
main()
{ int x=100, a=10, b=20, ok1=5, ok2=0;
if(a
else if(ok2)x=10;
else x=-1;
printf("%d\n", x);
}
15 若变量已正确定义,以下语句段的输出结果是_____。
x = 0; y = 2; z = 3;
switch(x)
{ case 0: switch( y == 2)
{ case 1: printf("*"); break;
case 2: printf("%"); break;
}
case 1: switch( z )
{ case 1: printf("$");
case 2: printf("*"); break;
default : printf("#");
}
}
16 阅读下面程序,程序执行后的输出结果为_____。
#include "stdio.h"
main()
{
char a,b;
for(a=′0′,b=′9′;a
printf("%c%c",a,b);
printf("\n");
}
17 以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,
当输入为负数时结束输入。请填空。
main()
{ float x, amax, amin;
scanf("%f", &x);
amax = x; amin = x;
while(_____ )
{ if( x > amax ) amax = x;
if(_____) amin = x;
scanf("%f", &x);
}
printf("\namax = %f\naming = %f\n", amax, amin);
}
18 以下程序段的输出结果是_____。
int i = 0, sum = 1;
do
{ sum += i++;
} while( i < 5);
printf("%d\n", sum);
19 若依次输入字符AB,在以下while语句执行后ch的值是_____。
while( ch = getchar() == 'A');
20 以下程序的输出结果是_____。
main()
{ int x = 2;
while ( x-- );
printf("%d\n", x);
}
21 给出以下程序,其功能是将a矩阵和b矩阵合并成c矩阵,最后将c矩阵按格式输出。请填空。
#include
main()
{ int a[3][4] = {{3, 1, 7, 5},{1, 2, 4, 3},{6, 3, 0, 2}};
int b[3][4] = {{2, 3, 1, 4},{5, 1, 3, 6},{1, 5, 2, 3}};
int i, j, c[3][4];
for(i = 0; i < 3; i++)
for(j = 0; j < 4; j++)
c[i][j] = _____ ;
for(i = 0; i < 3; i++)
{ for(j = 0; j < 4; j++)
pritnf("%5d", c[i][j]);
_____;
}
}
22 以下程序的功能是从a数组中删除其值为x的数据,请填空。
main()
{
int a[10]={2,4,7,3,1,7,6,8,7,9}, i, j, x = 7;
for(_____ ; i<10; i++)
if(a[i] != x)
a[ j++ ] = x;
for(i = 0;_____; i++)
printf("%5d", a[i]);
printf("\n");
}
23 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6的因子为1、2、3,而6=1+2+3,因此6是"完数"。以下程序是求1~1000之间的所有完数,请填空,以完善程序功能。
#define M 100
main()
{ int a, b, x[M], sum, cnt = 0;
for(a = 1; a <= 1000; a++)
{
_____ b = 1;
while(b { if(a % b == 0) /* b是a的一个因子 */ sum += b; b++; } if( _____ ) /* a是完数 */ x[cnt++] = a; 《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); } 二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y); 安徽农业大学经济技术学院 《C 语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是________。 A )C 语言程序总是从第一个定义的函数开执行 B )在 C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行 D )C 语言程序中的main()函数必须放在程序的开始部分 2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。 A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。 A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。 A)2b B )x_1 C )a@b D)3#h 5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。 A )0~255 B )0~32767 C )0~65535 D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。 A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。 A )8 B )10 C )12 D )14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。 A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。 A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z ); 10.华氏温度f 和摄氏温度c 的关系是)32(9 5-= f c 。已知:float c,f;,由华氏温度f 求摄氏温度c 的不正确的赋值表达式是________。 A )c=5/9(f-32) B )c=5.0/9*(f-32) C )c=5*(f-32)/9 D )c=(float)5/9*(f-32) 11.一个C 程序中要调用sqrt()函数时,应在程序中包含的头文件是________。 A )stdio.h B )math.h C )string.h D )stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是________。 A )A B )65 C )97 D )出错 13.能正确表示逻辑关系“a ≥5或a ≤-1”的C 语言表达式是________。 A )a>=5.or.a<=-1 B) a>=5.and.a<=-1 C) a>=5&&a<=-1 D )a>=5‖a<=-1 模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型 《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24 对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。 本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #include 。 。 。 main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 ) 《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的就是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被瞧作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的就是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的就是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果就是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(D)。 解析: strcpy(str1,str2); 后,str1[] 里就是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的就是str1, 因为str1[] 里就是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的就是(A)。 一.单项选择题 1.一个C语言源程序由一个或多个( D )组成。 A.子程序B.过程C.函数D.主函数 2. 下列定义变量的语句中错误的是( C )。 A.int _int B.double int_1 C.char For D.float US$ 3.以下语句有语法错误的是( B )。 A.printf("%d",0xabc); B.printf("%f",1.234e2.0); C.printf("%d",057); D.printf("%c",'\\'); 4.若有定义int m=2,n=2;执行语句(m=0)&&(n=3);后m和n的值分别为( D )。 A.2 2 B.0 3 C.2 3 D.0 2 5.若有定义int k=4,a=3,b=2,c=1;则表达式kb) c=a,a=b,b=c; B.if(a>b){c=a,a=b,b=c;} C.if(a>b) c=a;a=b;b=c; D.if(a>b){c=a;a=b;b=c;} 10. 若变量已正确定义,要求程序段完成求10!的计算,不能完成此操作的程序段是( B )。 A.for(i=1,fac=1;i<=10;i++) fac*=i; 一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表: 下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y);} A)0 B)22 c)12 D)10 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内 一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy , c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main() { printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 一.选择题 1、()是不正确的。 A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。 A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的; C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名 A. k.jeep B. int C.k_5 D. –k15 4、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是() A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21 5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b 《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是___1.000000___ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( X>0&&X<=100 ) { if (x>amax) amax=x; else if (x _k++ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是_-3 -4 0 4 4 3___ ____。 #inclued 此答案为自己所出,若有不对之处请谅解,并希望能留言 单选题(共60题,每题1分,共60分) 1. 下列符号串中,属于C语言合法标识符的个数为 (B)。 _1_2_3,a-b-c,float,9cd,a3b4 A:1 B:2 C:3 D:4 2. 下列能为字符变量 a 赋值的是:char a= (C)。 A:'ab' B:"a" C:'\0' D:"\0" 3. 在下列字符序列中,合法的标识符是(B)。 A:P12.a B:stud_100 C:$water.1 D:88sum 4. 下列用于printf函数的控制字符常量中,代表tab 的字符常量是(B)。 A:'\b' B:'\t' C:'\r' D:'\f' 5. 下列用于printf函数的控制字符常量中,代表退格的字符常量是(A)。 A:'\b' B:'\t' C:'\r' D:'\n' 6. 如有以下程序:unsigned int a=6; int b=-20; char c; c=(a+b>6); 则c的值为(C)。(int转换为unsigned ) A:6 B:-14 C:1 D:0 7. 关于C语言,以下不正确的叙述是(B)。 A:在C语言程序设计中,逗号运算符的优先级最低 B:在C语言程序设计中,var和VAR是两个相 同的变量 C:C语言也支持重载 D:此处的两个语句int a; a=-13.06;在程序编译中将会提示出错 8. 若有定义: int a=2,*p; float x=1, y=2; char e=‘w’; 则以下用法不正确的是(B)。 A:printf("%c",e+a); B:p=&x; C:a *=y+x; D:x=y=e; 9. int x=20; printf("%d\n",~x); 以上程序片段的输出是(B)。 A:235 B:-21 C:-20 D:-11 10. 在C语言中,要求运算数必须是整型的运算符是 (D)。 A:/ C语言模拟试题 一、单项选择题(共40分每题1分) 说明:答案必须填写在答题卡的相应位置上,否则不得分。 1.C语言中字符型(char)数据在内存中的存储形式是____D____。 A、原码 B、反码 C、补码 D、ASCII码 2.C语言中基本的数据类型包括___B_____。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 3.在C语言中,int类型数据在内存中占用____C____。 A、2字节 B、4字节 C、由编译系统决定 D、由用户决定4.运算符有优先级,C语言中关于运算符优先级的正确叙述是____B____。 A、逻辑运算符高于算术运算符,算术运算符高于关系运算符; B、算术运算符高于关系运算符,关系运算符高于逻辑运算符; C、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符; D、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。 5.下面关于C语言语句的叙述,错误的是___C_____。 A、C语言一行可以允许写多条语句; B、C语言语句用分号结束; C、语句一行写不下时,可以用逗号换行; D、语句一行写不下时,可在任意一空格处回车换行。 6.下面数据中不属于字符型常量的是____A____。 A、“\n” B、…\0? C、…A? D、…\t? 7.11.以下选项中,当x为大于1的奇数时,值为0的表达式______D____ 。 A、x%2==1 B、x/2 C、x%2!=0 D、x%2==0 8.C语言源程序名的后缀是____B____ 。 A 、.exe B、.C C、.obj D、.cp 9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是____D____。 A、7 B、8 C、6 D、2 10.若有说明语句:int a;float b;,以下输入语句正确的是___C_____。 A、scanf("%f%f",&a,&b); B、scanf("%f%d",&a,&b); C、scanf("%d,%f",&a,&b); D、scanf("%6.2f%6.2f",&a,&b); 11.已知int a,b; 用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是_____A___。 A、, B、空格 C、回车 D、[Tab] 12.C语言对嵌套if语句的规定是:else总是与___D___配对。 A、与之前最近的if B、第一个if C、缩进位置相同的if D、其之前最近的且尚为配对的if 13.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是___D___。 A、if(a)s1; else s2; B、if(a==0)s2; else s1; C、if(a!=0)s1; else s2; D、if(a==0)s1; else s2; :题.选择一1.设float x,y;则以下不合法的赋值语句是______。 x*=y+8; x=y=0; ++x; y=(x%2)/10; 2. 设int k=017,g=111; 执行语句printf(%d,%x,k,g); 的输出是_____。 15,6f f,6f f,111 15,111 3. 对语句for(i=0; ; i++);可理解为_____。 for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++); 4. 下面对数组的初始化,错误的是_____。 char s[5]=abc; char s[5]={'a','b','c'}; char s[5]= ; char s[5];s=abc; 5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。 是无限循环 while循环执行10次 循环体语句一次也不执行循环体语句只执行一 次 6. 如果x为int型且为5,则执行if(x--<5) printf(%d,x);else printf(%d,x++);后输出结果是______。 3 4 5 6 7. 有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用 语句中,含有的实参个数是____。 3 4 5 有语法错 8. 在C语言的if语句中,可用作条件判断的表达式为_____。 算术表达式逻辑表达式 关系表达式任意表达式 9. 若给定条件表达式(n)?(c++):(c--),则与表达式中(n)等价的表达式是_____。 n==0 n==1 n!=0 n!=1 10. 一个函数返回值的类型取决于_____。 调用该函数的主调函数的类型定义函数时指定或缺省 的函数类型调用函数时临时决定 return语句中表达式的类型答案:D A B D C B A D C B 二.填空题: 1.如果static int y=8;main(){ int y=3;printf(%d, y);}则输出结果是______。 2. 若int x=120,y=50; 执行printf(%d,(y,x));后输出结果是______。 3. 若int i, a[10]; 则执行语句 for(i=9;i>=0;i--) a[i]=i+5; 后,a[8]的 值为__________。 4. 在C语言中是没有输入输出语句的,而是通过提供库函数______和printf最新C语言程序设计模拟试题5(附答案)
C语言模拟试卷A
C语言模拟试题二
C语言程序设计模拟试题1附答案
c语言模拟试题
C语言程序设计模拟试题2(附答案)new
C语言程序设计模拟试题A附答案
C语言模拟试卷
C语言模拟试题1
C语言考试试题基础版
c语言程序设计教程(第2版)课后题及模拟题参考答案
C语言模拟题
C语言程序设计模拟试题2(附答案)
模拟题c语言答案
C语言模拟试题
C语言模拟题目及答案