程序设计语言(C)——在线考试复习资料
一、单选题
1.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
2.下列关于C语言用户标识符的叙述中正确的是( )
A.用户标识符中可以出现下划线和中划线(减号)
B.用户标识符中不可以出现中划线,但可以出现下划线
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
3.以下选项中属于C语言的数据类型是( )
A.复数型
B.布尔型
C.集合型
D.整型
4.一个C程序的执行是从( )
A.main()函数开始,直到main()函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D.main()函数开始,直到最后一个函数结束
5.设有语句inta=3;则执行语句a+=a-=a*a;后,变量a的值是( )
A.3
B.0
C.-12
D.9
6.以下有宏替换不正确的叙述( )
A.宏替换不占用运行时间
B.宏名无类型
C.宏替换只是字符串替换
D.宏名必须用大写字母表示
7.在定义inta[3][4];后,第10个元素是( )
A.[2][4]
B.[2][2]
C.[2][3]
D.[2][1]
8.设有语句:printf("%2d\n",2010);,则以下叙述正确的是( )
A.指定的输出宽度不够,编译出错
B.程序运行时输出10
C.程序运行时输出2010
D.程序运行时输出20
9.以下叙述中错误的是( )
A.实参的个数应与形参的个数一致
B.实参的类型应与形参的类型赋值兼容
C.形参可以是常量、变量或表达式
D.实参可以是常量、变量或表达式
10.设有定义:
int n = 1234;
double x = 3.1415;
则语句:printf("%3d,%1.3f\n", n, x); 的输出结果是( )
A.123,3.142
B.123,3.141
C.1234,3.142
D.1234,3.141
11.若有以下定义和语句:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则不能表示a数组元素的表达式是( )
A.*p
B.[10]
C.*a
D.[p-a]
12.若有以下定义和语句:
A.4
B.5
C.9
D.10
13.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是( )
for (i=5;i>0;i——)
for(j=0;j<4;j++){……}
A.20
B.25
C.24
D.30
14.若有以下定义:
char s[20]=“programming”,*ps=s;
则不能代表字符o的表达式是( )
A.ps2
B.s[2]
C.ps[2]
D.ps=2,*ps
15.若有以下定义和语句
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
16.若有以下定义和语句:
则输出结果是( )
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
17.若有定义和语句:
则输出结果是( )
A.10,20
B.10,10
C.20,10
D.20,20
18.若有定义和语句:
char s[10];s=“abcd”;printf(“%s\n”,s);
则结果是(以下u代表空格)( )
A.输出abcd
B.输出a
C.输出abcduuuuu
D.编译不通过
19.合法的数组定义是( )
A.int a[]=“string”
B.int a[5]={0,1,2,3,4,5};
C.vhst s=“string”
D.har a[]={0,1,2,3,4,5};
20.若已定义x和y为double类型,则表达式:x=1,y=(x+3)/2的值是( )
A.1
B.2
C.2.0
D.2.5
21.函数调用语句“f((e1,e2),(e3,e4,e5));”中参数的个数是( )
A.1
B.2
C.4
D.5
22.若有以下的说明和语句:
则以下选项中能正确表示t数组元素地址的表达式是( )
A.&t[3][2]
B.pt[0]
C.(pt+1)
D.&pt[2]
23.能正确表示a≥10或a≤0的关系表达式是( )
A.>=10 or a<=0
B.>=10│a<=0
C.>=10││a<=0
D.>=10 ││a<=0
24.若有以下说明:
A.w[1]1
B.p,(p1)
C.w[2][2]
D.p[1][1]
25.若有以下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为6的表达式是( )
A.p6
B.(p6)
C.*p+5
D.p5
26.不能把字符串:Hello!赋给数组b的语句是( )
A.har b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,’!’};
B.har b[10];b=“Hello!”;
C.har b[10];strcpy(b,“Hello!”);
D.har b[10]=“Hello!”;
27.有以下程序段
int m=0,n=0; char c=’a’;
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10<回车>,则输出结果是( )
A.10,A,10
B.10,a,10
C.10,a,0
D.10,A,0
28.在下列选项中,不正确的赋值语句是( )
A.t
B.n1=(n2=(n3=0))
C.k=i==j
D.=bc=1;
29.表达式:10!= 9的值是( )
A.true
B.非零值
C.0
D.1
30.语言提供的合法的数据类型关键字是( )
A.ouble
B.short
C.integer
D.har
31.阅读程序回答问题:
main( )
{int i,j,k,m=0;
for(i=1;i<4;i++)
for(j=1;j<4;j++)
for(k=1;k<4;k++)
m++;
printf(“M=%d”,m);
}
以上程序输出M=( ).
A.3
B.6
C.9
D.27
32.下列程序运行的结果为
#include<stdio.h>
fun(int x,int y,int *cp,int *dp)
{
*cp=x+y;
*dp=x-y;
}
main()
{int a,b,c,d ;
a=30 ;
b=50;
fun(a,b,&c,&d);
printf(“%d,%d\n”,c,d);
}
A.50,30
B.30,50
C.80,-20
D.80,20
33.下列程序运行的结果为
#include<stdio.h>
Main()
{intk=0;
Char c=’A’;
Do
{switch(c++)
{ case ‘A’:k++;break;
Case ‘B’:k–;break;
Case ‘C’:k+=2;break;
Case ‘D’:k=k%2;break;
Case ‘E’:k=k*10;break;
Default:k=k/3;
}
K++;
}while(c<’G’);
Printf(“k=%d”,k);
}
A.k=4
B.k=6
C.k=7
D.k=8
34.在如下程序段中的while循环
intk=0;
While(k=1) k++;
A.有语法错,不能执行
B.无限循环
C.一次都不执行
D.执行一次
35.设有以下宏定义:
#define M 2
#define X(m) ((M+2)m)
则执行语句:z=2(M+X(3+2));后,z的值为
A.44
B.45
C.32
D.33
36.若有以下说明和语句,且0<=i<10,则( )是对数组元素的错误引用
int a[]={1,2,3,4,5,6,7,8,9,0},p,i;
p=a;
A.(a+i)
B.[p-a]
C.p+i
D.*(&a[i])
37.下面程序的运行结果是
Main( )
{struct cmplx{intx;
inty;
}cnum[2]={1,3,2,7};
Printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);
}
A.0
B.1
C.3
D.6
38.若有代数式3ae/(bc),则不正确的C语言表达式是
A.3ae/bc
B.3ae/b/c
C./b/ce*3
D.e/c/b3
39.若有float x;则sizeof(x)和sizeof(float)两种描述
A.都正确
B.都不正确
C.前者正确,后者不正确
D.后者正确,前者不正确
40.以下能正确进行字符串赋值的是
A.hars[5]={‘a’,’e’,’I’,’o’,’u’}
B.hars[5];s=”good”
C.hars[5]=”abcd”
D.hars[5];s[]=”good”
41.执行以下程序后,y的值是
A.6
B.4
C.8
D.10
42.下列程序的输出结果是( )
A.4 4
B.2 4
C.2 2
D.4 6
43.下列程序的输出结果是( )
A.xyabcAB
B.z
C.z
D.
44.设有如下定义:
char *aa[2]={“abcd”,“ABCD”};
则以下说法中正确的是( )
A.数组成元素的值分别是“abcd”和ABCD
B.是指针变量,它指向含有两个数组元素的字符型一维数组
C.数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D.数组的两个元素中各自存放了字符’a’和’A’的地址
45.以下程序的输出结果是( )
A.10 10
B.9 9
C.9 10
D.10 9
46.以下程序的输出结果是( )
A.10 10
B.9 9
C.9 10
D.10 9
47.表达式“10!=9”的值是( )
A.true
B.非零值
C.0
D.1
48.执行语句“x=(a=3,b=a–)”后,x,a,b的值依次为( )
A.3,3,2
B.3,2,2
C.3,2,3
D.2,3,2
49.不是c语言提供的合法关键字是( )
A.switch
B.her
C.se
D.fault
50.二进制语言是属于( )
A.面向机器语言
B.面向过程语言
C.面向问题语言
D.面向汇编语言
51.若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof( fp)的返回是( )
A.OF
B.-1
C.非零值
D.NULL
52.下列函数的功能是( )
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串X复制到字符串Y
D.将字符串X连接到字符串Y后面
53.执行下面程序中输出语句后,a的值是( )
A.65
B.20
C.15
D.10
54.下面程序的输出是( )
A.3
B.4
C.1
D.2
55.若执行下面的程序时从键盘上输入3和4,则输出是( )
main()
A.14
B.16
C.18
D.20
56.下面程序的输出是( )
A.0
B.1
C.3
D.不确定的值
57.已知字母A的ASCⅡ码为十进制的65,下面程序的输出是( )
A.67,D
B.,C
C.,D
D.不确定的值
58.在C语言中,要求运算数必须是整型的运算符是( )
A.%
B./
C.<
D.!
59.下列语句中符合C语言语法的赋值语句是( )
A.=7+b+c=a+7
B.=7+b++=a+7
C.=7+b,b++,a+7
D.=7+b,c=a+7
60.将十六进制数176转换成十进制数是( )
A.366
B.268
C.374
D.270
61.下面程序的输出结果是
typedef struct
{longx[2];
shorty[4];
charz[8];
}MYTYPE;
MYTYPE a;
main()
{printf("%d\n",sizeof(a));}
A.2
B.8
C.14
D.24
62.在定义inta[3][4];后,第10个元素是
A.[2][4]
B.[2][2]
C.[2][3]
D.[2][1]
63.下面程序的输出结果是
#define POWER(x) (x*x)
main()
{int i=4;printf("%d",POWER(i-2)); }
A.-9
B.-7
C.5
D.-6
64.执行charstr[10]=”Ch\nina”;strlen(str)的值是
A.5
B.6
C.7
D.9
65.以下有宏替换不正确的叙述
A.宏替换不占用运行时间
B.宏名无类型
C.宏替换只是字符串替换
D.宏名必须用大写字母表示
66.已知:inta[2][3]={1,2,3,4,5,6}, (p)[3]=a;下列表达式不是4的是
A.(p+3)
B.p+3
C.((p+0)+3)
D.[0][3]
67.若有 char c[5]={‘c’,‘d’,’\0’,‘e’,’\0’};则执行语句printf("%s",c);结果是
A.\0e
B.‘c’‘d’
C.
D.
68.设有语句inta=3;则执行语句a+=a-=a*a;后,变量a的值是
A.3
B.0
C.-12
D.9
69.一个C程序的执行是从
A.main()函数开始,直到main()函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D.main()函数开始,直到最后一个函数结束
70.以下选项中属于C语言的数据类型是
A.复数型
B.布尔型
C.集合型
D.整型
71.设有如下说明
typedef struct
{ int n; char c; double x;}STD;
则以下选项中 ,能正确定义结构体数组并赋初值的语句是
A.STD tt[2]={{1,’A’,62},{2,’B’,75}};
B.STD tt[2]={1,“A”,62,2,"",75};
C.struct tt[2]={{1,’A’},{2,’B’}};
D.struct tt[2]={{1,“A”,62.5},{2,“B”,75.0}};
72.有以下程序
main()
{ int m[][3]={1,4,7,2,5,8,3,6,9};
int i,k=2;
for(i=0;i<3;i++)
{ printf("%d ",m[k][i]); }
}
执行后输出结果是
A.4 5 6
B.2 5 8
C.3 6 9
D.7 8 9
73.有以下程序
main()
{ char *s[]={“one”,“two”,“three”},p;
p=s[1];
printf("%c,%s\n",(p+1),s[0]);
}
执行后输出结果是
A.n,two
B.t,one
C.w,one
D.o,two
74.有以下程序
void f(int x,int y)
{ int t;
if(x<y){ t=x; x=y; y=t; }
}
main()
{ int a=4,b=3,c=5;
f(a,b); f(a,c); f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
执行后输出的结果是
A.3,4,5
B.5,3,4
C.5,4,3
D.4,3,5
75.有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i–,++j);
}
执行后输出的结果是
A.9,2
B.10,2
C.9,1
D.10,1
76.有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}}
执行后输出的结果是
A.011122
B.012
C.012020
D.120
77.有以下程序段
int m=0,n=0; char c=’a’;
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10<回车>,则输出结果是:
A.10,A,10
B.10,a,10
C.10,a,0
D.10,A,0
78.下列关于C语言用户标识符的叙述中正确的是
A.用户标识符中可以出现下划线和中划线(减号)
B.用户标识符中不可以出现中划线,但可以出现下划线
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
79.语言中用于结构化程序设计的三种基本结构是
A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
80.以下叙述正确的是
A.语言比其他语言高级
B.语言可以不用编译就能被计算机识别执行
C.语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.语言出现的最晚、具有其他语言的一切优点
81.以下程序的输出结果是
unionmyun
{struct{intx, y, z; } u;
intk;
} a;
main()
{a.u.x=4;a.u.y=5;a.u.z=6;
a.k=0;
printf("%d\n",a.u.x);
}
A.4
B.5
C.6
D.0
82.以下选项中,不能正确赋值的是
A.hars1[10];s1=“Ctest”;
B.hars2[]={‘C’, ‘t’, ‘e’, ‘s’, ‘t’};
C.hars3[20]=“Ctest”;
D.har*s4=“Ctest\n”;
83.以下程序的输出结果是
main()
{int i, a[10];
for(i=9;i>=0;i- -) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A.258
B.741
C.852
D.369
84.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
85.t为int类型,进人下面的循环之前,t的值为0
while( t=l )
{ ……}
则以下叙述中正确的是
A.循环控制表达式的值为0
B.循环控制表达式的值为1
C.循环控制表达式不合法
D.以上说法都不对
86.设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.0
B.1
C.2
D.3
87.以下程序的输出结果是
main()
{inta=3;
printf("%d\n",a+(a-=a*a) );
}
A.-6
B.12
C.0
D.-12
88.以下选项中合法的字符常量是
A."
B.’\010’
C.68
D.
89.以下有4组用户标识符,其中合法的一组是
A.For
B.4d
C.f2_G3
D.WORD
90.在C语言中,合法的长整型常数是
A.OL
B.4962710
C.324562&
D.216D
91.能将高级语言编写的源程序转换为目标程序的是( )
A.链接程序
B.解释程序
C.编译程序
D.编辑程序
92.以下4组用户定义标识符中,全部合法的一组是( )
A._main enclude sin
B.If–max turbo
C.txt REAL 3COM
D.int k_2 _001
93.设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是( )
A.++
B.++
C.++
D.++
94.以下4个选项中,不能看作一条语句的是( )
A."{;}"
B.=0,b=0,c=0
C.if(a>0)
D.if(b==0) m=1;n=2;
95.有以下程序
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( )
A.nother number
B.nother number number
C.nother number another
D.number number number
96.有以下程序
A.1,2,3
B.3,1,2
C.1,3,2
D.2,3,1
97.有以下程序段
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.8
D.9
98.有以下程序
A.28
B.22
C.16
D.4
99.设有以下语句
typedef struct S
{ int g; char h;}T;
则下面叙述中正确的是( )
A.可用S定义结构体变量
B.可以用T定义结构体变量
C.S是struct类型的变量
D.T是struct S类型的变量
100.有以下程序
执行后输出结果是( )
A.10
B.9
C.7
D.8
二、判断题
101.语言中,为了区别一般的变量,符号常量必须用大写字母表示。( )
102.函数返回值的类型是由在定义函数时所指定的函数类型。( )
- 语言程序中可以有多个函数 , 但只能有一个主函数。( )
104.如果函数定义出现在函数调用之前,可以不必加函数原型声明。( )
105.函数的实参可以是常量,变量或表达式。( )
106.se语句后如没有break,顺序向下执行。( )
107.o-while循环的while后的分号可以省略。( )
108.任何表达式语句都是表达式加分号组成的。( )
程序设计语言(C)——在线考试复习资料答案
一、单选题
1.
二、判断题
101.