C语言模拟试题1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言模拟试题1
C语言复习题一
一、单项选择
1.对于语句scanf (“%f□%f,c=%f”,&a,&b,&c ); ,其合法的输入形式为()。
(A)□56.7□2.3□15.6 (B)56.7,2.3,15
(C)56.7□□2.3,15.6 (D)56.7□□□2.3,c=15
2.整型变量x=1,y=3,经下列计算后,x的值不等于6的是( ) 。
(A)x=(x=1+2,x*2) (B) x=y*(y/2) (C)x=10-(--y)-(x++) (D) x=y>2?6:5
3.C语言中,逻辑”真”等价于( )。
(A)大于零的数 (B)大于零的整数 (C)非零的数 (D)非零的整数
4. 执行下面程序, 退出循环后,x和s的值为( ).
int x=10,s=0;
while(x>0) {s+=x; x--; };
(A) 0和45 (B) 1和45 (C)1和55 (D)0和55
5.与如下定义完全等价的形式是( )。
char str[ ]= “China”;
(A)char str[ ]= {‘C’,’h’,’i’,’n’,’a’,’\0’}; (B) char str[ ]= {‘C’,’h’,’i’,’n’,’a’ };
(C) char str[ ]= {’\0’,‘C’,’h’,’i’,’n’,’a’ } (D) char str[ ]= {‘C’,’h’,’i’,’n’,’a’,’\0’, ’\0’}
6.以下对二维数组不正确初始化是()。
A.char a[2][3]={0}; B.char a[ ][3]={{1,2},{0}};
C.char a[2][3]={{1,2},{3,4},{5,6}}; D.char a[ ][3]={1,2,3,4,5,6} 7.下面程序段的运行结果是()。
char s[6]={‘A’, ‘B’, ‘\0’, ‘C’, ‘D’ , ‘\0’};
printf(“%s”,s);
A.A’, ‘B’ , B.AB C.ABC D.AB C
8.以下说法不正确的是()。
A.不同函数中可以使用相同的变量名。
B.形式参数是局部变量。
C.一个函数内部定义的变量只能在本函数范围内有效。
D.全局变量不能与局部变量同名。
9.以下叙述正确的是()。
A.递归函数中的形式参数是外部变量。B.递归函数中的形式参数是自动变量。
C.递归函数中的形式参数可以省略。 D.递归函数中的形式参数只能有一个。
10.宏定义有效范围是从定义处到源文件结束处,可以用( )来提前结束宏定义的作用范围。
A.# ifndef B.# endif C.# undefined D.# undef
11.p1指向某个整型变量,要使指针p2指向同一变量,下列语句正确的是( )。
A. p2=*p1;
B.p2=**p1;
C.p2=&p1
D. p2=&*p1;
12.数组定义为“int a[4][5];”引用“*(*(a+1)+2)”表示( )。
A. a 数组中行下标为1列下标为2的元素的地址
B. a[1][0]+2
C. a 数组中行下标为1列下标为2的元素的值
D. a[0][1]+2
13.设有说明float (*p)[10]; ,其中p是( )。
A. 具有10个指针元素的一维指针数组.
B.指向10个实型变量的函数指针.
C.指向具有10个实型元素的一维数组的指针.
D. 10个指向实型变量的指针.
14.若有以下说明语句,则( )是错误的。
char *ps=“ABCDEFGH”; char str[30];
A. printf(“%c\n”, *ps);
B. strcpy(str,ps+5);
C. printf(“%s\n”,ps+3);
D. str[0]=ps;
15.对于“struct node{double x;char c;}*p;”,()是错的。
A.p->x=97
B.p.x=97.0
C.p->c=97
D.(*p).c=’a’
16.下列说法中错误的是()。
A. 枚举类型的变量之间以及枚举类型的变量与枚举元素之间可以做判断比较。
B.枚举类型中枚举元素的值按定义时的顺序分别是0、1、2、……,不可以在定义
时指定为其它值。
C. 枚举类型中的枚举元素是常量。
D. 一个整数不能直接赋给一个枚举变量,应先进行强制类型转换。
17.以下说法中不正确的是。
A. 若malloc(或calloc)函数执行成功,函数返回一个指向分配域起始地址的指针,
否则返回空指针(NULL)。
B. 为了将一个结构体变量的值传递给另一个函数,可用该结构体变量做实参,形参
也必须是同类型的结构体变量;也可用指向该结构体变量的指针做实参。
C.结构体变量的地址就是结构体变量中的每个成员的地址。
D. 若想将链表中的某个结点删除,只要撤消它与其它结点的链接关系即可。
18.执行如下语句后,表达式的值为67是()。
struct per{ int num;struct per *next} ;
struct per a[3]={65,&a[1],67,&a[2],69,‘\0’},*p;p=&a[0];
A (p++)->num
B (++p)->num
C (*p).num++
D p->num++
二、判断正误
1.程序文件中若有语句getchar ( );该程序文件头应有予编译命令# include “math.h”。
2.整型变量a = 5, b = 7 ; 表达式b/a * 100的值是140。
3.C语言的语句if(表达式)中的表达式只能为逻辑表达式。
4.定义数组时,可以用变量作为各下标长度。
5.数组在内存中顺序占用连续的存储区,用数组名代表其首地址。
6. 如果字符串str1与str2相同,则函数strcmp(str1,str2)返回值为一个正数。
7.任何被调函数都要在主调函数中进行函数声明。
8.定义在某函数中的静态局部变量,在函数调用结束时,其占用的存储单元被释放。
9.不同函数中可以定义相同名字的变量,它们代表不同的对象,互不干扰。
10.用static声明的外部变量只限于在本文件中使用,不能被其它文件引用。
11.在宏名作用域内所有与宏名相同的字符串都将被替换。
12.若实参和形参都是指针变量,当在被调用的函数体内改变形参指针变量的值时,实参指针变量的值不会改变。
13.允许main()函数有2个形式参数,一个是整型变量,一个是指针数组。
14. 在程序中声明一个结构体类型后,系统将在内存中为此结构体类型分配存储空间。