川农网院21年3月《C语言》期末机考
《C语言》期末机考1.[单选题] 在宏定义 #define PI? 3.14159中,用宏名PI代替一个:
A.双精度数
B.字符串
C.单精度数
D.常量
答:————
2.[单选题] 有以下程序<br />#include<br />main()<br />{ int?? a,b,c=246;<br />a=c/100%9;<br />b=(-1)&&(-1);<br />printf("%d,%d\n",a,b);<br />}<br />输出结果是:
A.3,2
B.4,3
C.2,-1
D.2,1
答:————
3.[单选题] 假定所有变量均已正确说明,下列程序段运行后x的值是:<br />a=b=c=0;x=35;<br />if(!a)x--;<br />else if(b);<br />if(c)x=3;<br />else x=4;
A.3
B.4
C.34
D.35
答:————
4.[单选题] 以下程序的输出结果是:<br />#include<br />main(? )<br />{??? char??? *p1,*p2,str="ABCDEFG";<br />p1="abcd";????? p2="efgh";<br />strcpy(str+1,p2+1);??? strcpy(str+3,p1+3);<br />printf("%s",str);<br />}
A.AfghdEFG
B.Afghd
C.Abfhd
D.Afgd
答:————
5.[单选题] 执行以下程序后,b的值为__??? ___。<br />main()<br />{ int a, b, k=4, m=6, *p1=&k, *p2=&m;<br />a=p1= =&m;<br />b=(-*p1) / (*p2)+7;<br />printf("a=%d", a);<br />printf("b=%d", b);<br />}
A.a=1 b=-7.67
B.a=1 b=7
C.a=0 b=7
D.a=0 b=-7.67
答:————
6.[单选题] 在C语言中,合法的长整型常数是:
A.0L
B.2.1869e10
C.4962710
D.0.054838743
答:————
7.[单选题] 设有以下宏定义:<br />#define????? N?????? 3<br />#define????? Y(n)?????? ( (N+1)*n)<br />则执行语句:z=2 * (N+Y(5+1));后,z的值为:
A.54
B.42
C.48
D.出错
答:————
8.[单选题] 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是:
A.2.5
B.1
C.2
D.2.0
答:————
9.[单选题] 下列4个函数中,:( ) 能实现交换变量值的功能。
A.void fun_b(int *x,int *y) { int *p; *x=*y;*y=*x;}
B.void fun_a(int x,int y) { int *p;*p=x;x=y;y=*p;}
C.void fun_c(int *x,int *y){ *x=*x+*y;*y=*x-*y;*x=*x-*y;}
D.void fun_d(int x,int y) { int p; p=x;x=y;y=p;}
答:————
10.[单选题] 下列运算符中优先级最高的是_______。
A.+
B.<
C.&&
D.!=
答:————
11.[单选题] 设有如下程序 :<br />#include<stdio.h><br />main()<br />{ int **k, *j, i=100;<br />j=&i;?? k=&j;<br />printf("%d\n", **k);<br />}<br />上面程序的输出结果是
A.j的地址
B.运行错误
C.i的地址
D.100
答:————
12.[单选题] 请选出以下语句的输出结果: printf("%d\n",strlen("\t\"\065\xff\n"));
A.14
B.8
C.5.00E+00
D.输出项不合法,无正常输出
答:————
13.[单选题] 执行以下程序段时:<br />x=-1;<br />do? {x=x*x;??? }?? while(! x);
A.循环体将执行无限次
B.循环体将执行两次
C.循环体将执行一次
D.系统将提示有语法错误
答:————
14.[单选题] C语言中用于结构化程序设计的三种基本结构是( )
A.顺序结构、选择结构、循环结构
B.if、switch、break
C.if、for、continue
D.for、while、do-while
答:————
15.[单选题] 请选出以下语句的输出结果:<br />printf("%d\n",strlen("\t\"\065\xff\n"));
A.5
B.8
C.14
D.输出项不合法,无正常输出
答:————
16.[单选题] 能正确表示“当x的取值在和范围内为真,否则为假“的表达式是_______。
A.(x>=1) || (x<=10)&&(x>=200) || (x<=210)
B.(x>=1)&&(x<=10) || (x>=200)&&(x<=210)
C.(x>=1) || (x<=10) || (x>=200) || (x<=210)
D.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
答:————
17.[单选题] 若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;<br />FILEL? CHINA? BEIJING? SHANGHAI<br />程序的输出结果是:<br />main(int argc,char *argv[])<br />{?? while(argc-->0)<br />{??? ++argv;printf("%s? ",*argv);}<br />}
A.C B S
B.CHINA BEIJING SHANGHAI
C.F C B
D.FILEL CHINA BEIJING
答:————
18.[单选题] 不能把字符串:Hello!赋给数组b的语句是:
A.char b="Hello!";
B.char b={'H','e','l','l','o','!'};
C.char b;b="Hello!";
D.char b;strcpy(b,"Hello!");
答:————
19.[单选题] 已定义以下函数
int fun( int*p)
{return*p;}
fun函数返回值是 ( )
A.形参p中存放的值
B.不确定的值
C.一个整数
D.形参p的地址值
答:————
20.[单选题] 有以下函数<br />char *fun(char *p)<br />{ return p; }<br />该函数的返回值是:
A.无确切的值
B.一个临时存储单元的地址
C.形参p中存放的地址值
D.形参p自身的地址值
答:————
21.[多选题] 能把字符串:Hello!赋给数组b的语句是( )
A.char b={‘‘H‘‘,‘‘e‘‘,‘‘l‘‘,‘‘l‘‘,‘‘o‘‘,‘‘!‘‘};
B.char b="Hello!";
C.char b;b="Hello!";
D.char b;strcpy(b,"Hello!");
答:————
22.[多选题] 以下错误的函数首部定义形式是( )
A.double fun (int x , y) ;
B.double fun (int x , int y)
C.double fun (int x ; int y)
D.double fun (int x , int y) ;
答:————
23.[多选题] 若有定义:int aa;则以下表达式中能代表数组元aa的地址的是 ()
A.&aa+1
B.&aa
C.&aa++
D.aa+1
答:————
24.[多选题] 以下能正确进行字符串赋初值的语句是( )
A.char str="good!";
B.char *str="good!";
C.char str={‘g‘‘,‘o‘‘,‘o‘‘,‘d‘‘};
D.char str[]="good!";
答:————
25.[多选题] 按照C语言规定的用户标识符命名规则,能出现在标识符中的是( )
A.下划线
B.数字字符
C.连接符
D.大写字母
答:————
26.[多选题] 设a为整型变量,能正确表达数学关系:10<a<15 的C语言表达式是( )
A.a==11||a==12||a==13||a==14
B.10<a<15
C.a>10&&a<15
D.(a<10)||(a>15)
答:————
27.[多选题] 以下不合法的字符型常量是( )
A.‘‘\081‘‘
B.‘‘\x13‘‘
C."\n"
D.‘‘\065‘‘
答:————
28.[多选题] 设有以下定义和语句
charstr="Program", *p;
p=str;
则以下叙述中错误的是( )
A.可以执行str++操作
B.str数组长度和p所指向的字符串长度相等
C.*p与str中的值相等
D.可以执行p++操作
答:————
29.[多选题] 以下合法的字符常量是()
A.‘‘\"‘‘
B.‘‘\018‘‘
C.‘‘\0xcc‘‘
D.‘‘\\‘‘
答:————
30.[多选题] 对于下面①,②两个循环语句,正确的描述是( )。① while(1);
② for( ; ; );
A.①是无限循环
B.①循环一次
C.②是无限循环
D.②循环一次
答:————
31.[多选题] 以下叙述中正确的是( )
A.复合语句在语法上被看作一条语句
B.C语句必须以分号结束
C.空语句出现在任何位置都不会影响程序运行
D.赋值表达式末尾加分号就构成赋值语句
答:————
32.[多选题] 已有定义:int i,a,*p; , 则不合法的赋值语句是( )
A.p=a
B.p=100;
C.p=a+2;
D.p=&a+2
答:————
33.[多选题] sizeof(double)是
A.sizeof是运算符
B.一种函数调用
C.一个整型表达式
D.一个双精度型表达式
答:————
34.[多选题] 下列定义变量的语句中正确的是( )
A.int_int;
B.doubleint_;
C.charFor;
D.floatUS$;
答:————
35.[多选题] 已知大写字母A的ASCⅡ码是65,小写字母a的ASCⅡ码是97。以下能将变量c中的大写字母转换为对应小写字母的语句是( )
A.c=c+32
B.c=c-‘‘A‘‘+‘‘a‘‘
C.c=(‘‘A‘‘+c)%26-‘‘a‘‘
D.c=(c-‘‘A‘‘)%26+‘‘a‘‘
答:————
36.[多选题] 以下能对二维数组a进行正确初始化的语句是( )
A.int a={0};
B.int a={{1, 2}, {3, 4}, {5, 6}};
C.int a[ ]={1, 2, 3, 4, 5, 6};
D.int a[ ]={{1, 2}, {0}};
答:————
37.[多选题] 对于基本类型相同的两个指针变量之间,可以进行的运算是( )
A.+
B.=
C.<
D.-
答:————
38.[多选题] 若有定义语句:double x={1.0,2.0,3.0,4.0,5.0}, *p=x;则正确引用x数组元素的是( )
A.*p
B.x
C.*(p+1)
D.*x
答:————
39.[多选题] 设有定义:int k=1, m=2;float f=7;,则以下选项中符合C语言语法的表达式是 ( )
A.k<>m
B.-k++
C.k=k>=k
D.k%int(f)
答:————
40.[多选题] 若要求定义具有10个int型元素的一维数组a,则以下定义语句中正确的是 ( )
A.#defineN10
inta;
B.#definen5
inta ;
C.intn=10,a;
D.inta;
答:————
41.[填空题] Main(){换行} { int? a; {换行} int? i,j;{换行} for (i=0;i<5;i++){换行}for ( j=0;j<5;j++){换行} if ((i==j)||(j==0)?? a=1;{换行} else a=a+a ;{换行} for (i=0;i<5;i++){换行} {for ( j=0;j<5;j++) {换行}printf(“%d? ”,a);{换行} printf(“\n”); {换行}} {换行}}{换行}
答:————
42.[填空题] Main(){换行} { int? a; {换行} int? i,j;{换行} for (i=0;i<5;i++){换行} for ( j=0;j<5;j++){换行} if ((i==j)||(j==0) a=1;{换行} else a=a+a ;{换行} for (i=0;i<5;i++){换行} {for ( j=0;j<5;j++) {换行} printf(“%d ”,a);{换行} printf(“\n”); {换行}} {换行}}{换行}输出结果为:
答:————
页:
[1]