一、单项选择题(15题30分)
1. 假设x=
2.5,a=7,y=4.7,则表达式:x+a%3*(int)(x+y)%2/4的值为。
A)2.5 B)2.75 C)3 D)9.5
2. 设整型变量x的值为5,y的值为2,则值为1的表达式是( )。
A)!(y==x/2) B)y!=x%3 C)x>0&&y<0 D)x!=y||x>=y
3. 设有整型变量a, 实型变量f,双精度型变量x,则表达式10+'b'+x*f值的类型为( )。
A) int B) float C) double D) 不能确定
4.以下正确的C语言标识符是:
A) a+B B) if C) b5_ D) π
5.在C语言中,错误的C常量是:
A) 2e5 B) ‘{‘ C) 1.23e+2F D) 7ff
6. 表达式k=(12<10)?4:1?2:3的值为。
A) 1 B) 2 C) 3 D) 4
7. 下列哪组运算符的优先级相同且运算次序从左到右。
A)()[ ] -> . B)++ -- +=
C) < & | ^ D)&& ||
8. 已知:int x=1, y=2, z; 则执行:z=x>y?++x:++y, z的值为。
(A) 1 (B) 2 (C) 3 (D) 4
9. 在以下一组运算符中,优先级最高的运算符是。
A)<= B)= C)% D)&&
10.以下程序段,输出的结果是:
字符串函数编程题
int x=0,y=0,z=0;
++x||++y&&++z;
printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);
A) x=1 y=1 z=1 B) x=1 y=1 z=0 C) x=1 y=0 z=0 D) x=0 y=0 z=0
11.以下程序段,输出的结果是:
int x=3,y=4,z=4;
printf(“%d\t%d\n”, (x>=y>=x)?1:0 , z>=y&&y>=x);
A) 0 0 B) 0 1 C) 1 0 D) 1 1
12. 在C语言中,若以下变量均为int型,则下面程序段的输出结果是。
s=6,u=6; u=s++;u++;
printf("%d",u);
A)7 B)6 C)5 D)4
13. 若有定义int x,y,t; 则执行语句: x=y=3,t=++x||++y;后,y的值为。
A)不定值B)4 C) 3 D)1
14. 设x和y均为int型变量,则执行下面的循环后,y的值为。
for(y=1,x=1;y<=50;y++)
{if (x>=10) break;
if (x%2==1) {x+=5;continue;}
x-=3;
}
A)2 B)4 C)6 D)8
15. 在下列程序段中:
int x, y ;
scanf("%3d*2d%d",&x,&y);
若输入的数据为:12345678<CR>,则x、y的值分别为。
A) 123,456 B)123,678 C)12345 678 D)无法得到正确的值16.下列数组的初始化语句中,正确的是:
A) int arr[6]={}; B) arr[6]={1,2,3,4,5}
C) int arr[6]={1,2,3,4,5}; D) int arr[6]={1,2,3,4,5,6.5};
17.在下列二维数组的定义语句中,哪个是正确的:
A) int a[2][3]={{1,2},{3,4},{5,6}}; B) int a[][3]={{1,2},{3,4},{5,6}};
C) int a[2][]={{1,2},{3,4},{5,6}}; D) int a[][]={{1,2},{3,4},{5,6}};
18. 执行下列程序段后,变量a,b,c的值分别是。
int x=10,y=9;
int a,b,c;
a=(--x==y++)?--x:++y;
b=x++;
c=y;
(A)a=9,b=9,c=9 (B)a=9,b=10,c=9
(C)a=1,b=11,c=10 (D)a=8,b=8,c=10
19. 若有int a=1,b=2,c=3,d=4;则表达式:
a++<b?a++:c<d?a++:d 的值是。
A)4 B)3 C)2 D)1
20. 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的语句是。
A)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;
21. 以下程序段的运行结果是。
int a=7,b=8,c=9;
if(a>b)
a=b,b=c;c=a;
printf("%d,%d,%d\n",a,b,c);
A)7,8,7 B)7,9,7 C)8,9,7 D)7,8,9
22.有关指针的以下说法中正确的是:
A) 同类型的两个指针能进行相加
B) 同类型的两个指针能进行相减
C) 同类型的两个指针能进行相乘
D) 同类型的两个指针能进行相除
23. 下面程序的运行结果是。
main( )
{int k=3;
if (k++>3) printf("%d\n",k++);
else printf("%d\n",--k); }
A)5 B) 4 C)3 D)2
24. 下列程序的输出结果是。
#include <stdio.h>
main( )
{int a,b,c;
a=1;b=2;c=3;
a=(c=a>b)&&(b=c<b)?b:c;
printf("%d,%d,%d\n",a,b,c);
}
A)1,2,3 B)0,2,0 C)1,2,0 D)1,0,0
25. 若#include后面的文件名用双引号括起来,寻被包含文件的方式是。
A)先按系统设定的标准方式查,再在当前目录中查
B)先在当前目录中查,再按系统设定的标准方式查
C)只在当前目录中查
D)只按系统设定的标准方式查
26.C语言中最简单的数据类型包括:
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、字符型、逻辑型D)字符型、实型、逻辑型
27. 在宏定义#define PI 3.1415926中,用宏名PI代替一个。
A)单精度数B)双精度数C)常量D)字符串
28. C语言规定,C程序执行的开始处为。
A) 源程序中排列在最前面的函数
B) 一个指定的系统库函数
C) 用户指定的一个特定函数
D) 程序的主函数
29. 一个C语言程序是由()组成。
A) 一个函数B) 一个或若干个函数
C) 一个过程(D) 一个过程或若干个过程
30. C程序的基本单位是
A)函数B)过程C)语句D)子程序
31. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A) 必须为字母 B) 必须为下划线
C) 必须为字母或下划线 D) 可以是字母、数字和下划线中任一种字符
32. 在C语言的函数概念中,以下叙述正确的是
A) 函数没有被调用时,形参不会占据内存单元
B) 函数调用时,形参和与其对应的实参再不同名时才各占独立的存储单元
C) 形参在函数调用时不占存储单元
D) 函数没有被调用时,形参也要占据内存单元
33. 以下对C语言函数的有关描述,正确的是
A) 在C中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B)C函数既可以嵌套定义又可以递归调用
C) 函数必须有返回值,否则不能使用函数
D)C程序中有调用关系的所有函数必须放在同一个源程序文件中
34.以下字符串及其初始化错误的是
A) char str[]={‘C’,’h’,’i’,’n’,’a’};
B) char str1[6]={‘C’,’h’,’i’,’n’,’a’,’\0’}
C) char str1[6]={“China”}; D) char str1[6]=“China”;
35. 下述函数的功能是
int fun(char *x)
{char *y=x;
while(*y++);
return y-x-1;
}
A)将字符串x连接到字符串y的后面B)求字符串的存放位置
C)比较两个字符串的大小 D)求字符串的长度
36. C语言中,函数调用时若实参是数组名,则传递给被调函数对应形参的是
A) 整个数组 B) 数组元素的个数
C) 数组占用的内存单元个数 D) 数组在内存中存放的首地址
37. C语言中,以下叙述中错的是
A) 同一程序中,全局变量和局部变量可以同名
B) 局部变量的作用域被限定在其所定义的局部范围中
C) 同一程序中,全局变量和局部变量不能同名
D) 全局变量的作用域从定义处开始到本源程序文件结束
38. 在一个源程序文件中定义的全局变量,其作用域为
A) 整个源程序文件 B) 从定义处开始到本源程序文件结束
C) 整个主函数 D) 所处C程序的所有源程序文件中
39. 在C函数中,局部变量的隐含存储类型是
A) auto B) static C) register D) extern
40.程序编写和运行的顺序是:
A)编写源程序,链接程序,编译程序,执行程序;
B)编写源程序,编译程序,链接程序,执行程序;
C)编写源程序,编译程序,执行程序,链接程序;
D)编写源程序,执行程序,链接程序,编译程序。
41. 定义如下变量和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是
for(i=0;i<3;i++) printf("%d ",x[i][2-i]);
A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9
42. 在下面关于一维数组的定义中,其中()有语法错。
A) int x[ ]={1,2,3,4,5};
B) int x[5]={0};
C) int x[ ];
D) int x[5];
43.以下说法中正确的是
A) 运算符*和&具有自右向左的结合性,且优先级低于算术运算
B) 运算符*和&具有自右向左的结合性,且优先级低于自增++和自减――
C) 运算符*和&具有自左向右的结合性,且优先级低于算术运算
D) 运算符*和&具有自左向右的结合性,且优先级低于自增++和自减――
44.以下程序段,输出的结果是:
char c1,c2;
c1=’A’+’5’-‘3’;
c2=’A’+’5’-‘3’;
printf(“%d, %c\n”,c1,c2);
A) 67, 67 B) C, 67 C) A, A D) 67, C
45.关于函数,以下叙述正确的是
A) 函数可以嵌套定义,同一程序的多个函数可以定义在不同的文件中;
B) 函数可以嵌套定义,同一程序的多个函数必须定义在同一文件中;
C) 函数不可以嵌套定义,同一程序的多个函数必须定义在同一文件中;
D) 函数不可以嵌套定义,同一程序的多个函数可以定义在不同的文件中。
二、判断题(20题20分)
1、一个算法应该具备有穷性、确定性和有效性。
2、C程序是由函数构成的,每一个函数完成相对独立的功能。
3、在C语言中,字母的大小写不被区分。
4、对C语言中用到的任何一个变量都要规定其类型。
5、“++”运算符的优先级比“+”运算符的优先级低。
6、字符型数据和整数之间是不可以通用的。
7、字符常数和字符串常数的存储是相同的,都是以字符的ASCII码值进行存放。
8、C语言中的标识符以字母或下划线开头,可跟任何字符。
9、C语言本身并不提供输入输出语句。但可以通过输入输出函数来实现数据的输入输出。
10、在标准C中,while和do_while的功能完全相同。
11、在C语言中,字母的大小写不被区分。
12、对整型常量可进行自加或自减运算,而对变量或表达式不可以。
13、算术运算符和赋值运算符的结合方向均有左自右。
14、表达式1/4+2.75的值是3。
15、字符常量是用单撇号括来的一个字符,这个字符不可以是任意的。
16、在标准C语言中,字符串是以‘\0’结束的,故字符串的长度也包括‘\0’。
17、在进行赋值转换时,变量的类型被自动转换为赋值号右边的表达式值的类型。
18、条件运算符“?:”的优先级高于赋值运算符。
19、C程序中的一个变量可以被定义为两个或多个不同的类型。
20、字符常量是用单撇号括来的一个字符,这个字符可以是任意的。
21、空函数没有返回值,除此之外,有些函数可以带回一个或一个以上的返回值。
22、设有变量定义char s[]=”hello”,则strlen(s)的返回值为6。
23、continuc语句用在循环体中,可使整个循环不结束。
24、宏替换就是字符替换,不能进行任何计算。
25、任何数组在使用时必须先定义。
26、定义在main函数后的任何函数都需在main中进行函数声明。
27、一个函数中只允许有一条return语句。
28、自动变量只在定义它的那个局部才能使用。
29、静态局部变量只在本函数内可用。
30、静态外部变量只在本文件内可用。
31、宏替换就是字符替换,不能进行任何计算。
32、由于宏名与宏体之间以空格相隔,因此宏名中不应再有空格。
33、在任何情况下,对二维数组的初始化都可以省略第一维的大小。
34、字符串只能存放在字符型数组中。
35、用printf函数输出一个字符串时,格式字符为%S,输出项可以是此字符串或存放此字符串的数组的数组名。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论