(6)【6】 a 【解析】 'z'的ASCII码值为122,经过c-25运算后,得97,以字符形式输出是a。
(7)【7】 1,0 【解析】 与运算两边的语句必须同时为真时,结果才为真。当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。
(8)【8】 1 3 5 【解析】 本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf(\输出1,同时i自加1;执行第二次for循环时,i=3;同样的if语句条件不满足,所以直接执行printf(\输出3,同时i自加1;执行第三次for循环时,i=5,if语句条件满足,所以执行printf(\输出5,然后break语句跳出了for循环。
(9)【9】 2
【10】 2 4 6 8 【解析】 在主函数中根据整型数组x[]的定义可知,x[1]的初值等于2。在for循环语句中,当i=0时,p[0]=&x[1],p[0][0]=2; 当i=1时,p[1]=&x[3],p[1][0]=4;当i=2时,p[2]=&x[5],p[2][0]=6;当i=3
时,p[3]=&x[7],?p[3][0]?=8,所以程序输出的结果为2、4、6、8。
(10)【11】 35 【解析】 函数
swap(int *a,int *b)的功能是实现*a和*b中两个数据的交换,在主函数中调用
swap(p,q)后,形参指针变量a和b分别指向i和j,在swap(int *a,int *b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。
(11)【12】 BCD CD D 【解析】 本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值\并换行,依次执行循环语句。
(12)【13】 9 【解析】 本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需
类型。如:(double)a是将a转换成double
类型;(int)(x+y)是将x+y的值转换成整型。 本题可按部就班地逐步运算: fun((int)fun(a+c,b),a-c) fun((int)fun(10,5),2-8) fun((int)15.000000,-6) fun(15,-6) 9
(13)【14】 struct aa *lhead,*rchild; 【解析】 结构体对链表的定义。 (14)【15】 fseek(文件指针,位移量,起始点) 【解析】 本题考查函数fseek的用法。fseek函数的调用形式为: fseek(文件指针,位移量,起始点)
\起始点\用0,1或2代替,其中,0代表\文件开始\为\当前位置\为\文件末尾\。\位移量\指以\起始点\为基点,向前移动的字节数。ANSI C和大多数C版本要求位移量是long型数据,这样当文件的长度大于64k时不致出现问题。?ANSI C?标准规定在数字的末尾加一个字母L,就表示long型。
一、选择题
在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)程序流程图中带有箭头的线段表示的是
A)图元关系 B)数据流 C)控制流 D)调用关系
(2)下面不属于软件设计原则的是 A)抽象 B)模块化 C)自底向上 D)信息隐蔽
(3)下列选项中,不属于模块间耦合的是 A)数据耦合 B)标记耦合 C)异构耦合 D)公共耦合
(4)下列叙述中,不属于软件需求规格说 A)在C程序中,逗号运算符的优先级明书的作用的是 最低 B)在C程序中,APH和aph是两个A)便于用户、开发人员进行理解和交流 B)反映出用户问题的结构,可以作为软件
开发工作的基础和依据
C)作为确认测试和验收的依据 D)便于开发人员进行需求分析
(5)算法的时间复杂度是指 A)执行算法程序所需要的时间 B)算法程序的长度 C)算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数
(6)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是
A)堆排序 B)直接插入排序 C)快速排序 D)B)和C)
(7)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是 A)ABCED B)DCBEA C)DBCEA D)CDABE (8)数据库设计包括两个方面的设计内容,它们是 A)概念设计和逻辑设计 B)模式设计和内模式设计 C)内模式设计和物理设计 D)结构特性设计和行为特性设计 (9)关系表中的每一横行称为一个 A)元组 B)字段 C)属性 D)码
(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字 (键或码)为 A)课号,成绩 B)学号,成绩 C)学号,课号 D)学号,姓名,成绩
(11)以下不正确的叙述是
不同的变量 C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b
中的值不变 D)当从键盘输入数据时,对于整型变
量只能输入整型数值,对于实型变量只能
输入实型数值
(12)请选出可用作C语言用户标识符的是 A)void,define,WORD
B)a3_b3,_123,IF C)FOR,--abc,Case D)2a,Do,Sizeof
(13)以下选项中,不能作为合法常量的
是 A)1.234e04 B)1.234e0.4
C)1.234e+4 D)1.234e0 (14)在C语言中,运算对象必须是整型数
的运算符是
A)% B)\\
C)%和\\ D)**
(15)若变量均已正确定义并赋值,以下合
法的C语言赋值语句是
A)x=y==5; B)x=n%2.5; C)x+n=i; D)x=5=4+1; (16)有以下程序段 char ch; int k; ch=′a′;
k=12;
printf(\printf(\
已知字符a的ASCII码值为97,则执行上述程序段后输出结果是
A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12
(17)已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
A)kk>=′A′&& kk<=′Z′ printf(\则
A)运行程序段后输出0 B)运行程序B)!(kk>=′A′||kk<=′Z′)
C)(kk+32)>=′a′&&(kk+32)<=′Z′ D)isalpha(kk)&&(kk<91)
(18)当变量c的值不为2、4、6时,值也为\真\的表达式是
A)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&& c<=6)&&(c%2!=1)
(19)若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A)(exp==0) B)(exp!=0)
C)(exp==1) D)(exp!=1)
(20)以下不正确的定义语句是
A)double
x[5]={2.0,4.0,6.0,8.0,10.0}; B)int
y[5]={0,1,3,5,7,9}; C)char
c1[]={′1′,′2′,′3′,′4′,′5′}; D)char
c2[]={′\\x10′, ′xa′, ′\\x8′};
(21)下列程序执行后的输出结果是 main()
{ int a[3][3], *p,i; p=&a[0][0];
for(i=1; i<9; i++)p[i]=i+1; printf(\
A)3 B)6 C)9 D)
随机数
(22)设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x;
段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 (23)(23)下面程序段的运行结果是 char *s=\s+=2;printf(\
A)cde B)字符′c′ C)字符′c′的地址 D)无确定的输出结果
(24)阅读下列程序,则执行后的结果为
#include \main()
{ int
c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56}; printf(\
;} A)3e,6 B)62,5 C)56,5 D)3E,6
(25)下面判断正确的是
A)char *a=\等价于 char *a;*a=\str[5]={\等价于char str[]={\
C)char *s=\等价于 char *s;s=\
c[4]=\等价于char c[4]=d[4]=\
(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是
A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1] (27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是 A)gets(&s[0]);
B)scanf(\ main()
{FILE *fp;int k,n,a[6]={1,2,3,4,5,6}; fp=fopen(\
fprintf(fp,\D)scanf(\(28)有以下程序 #include
printf(\}
程序的运行结果是 A)12 12 B)11 7 C)11
11 D)12 7
(29)若有以下说明和定义 union dt
{ int a; char b; double c;}data; 以下叙述中错误的是
A)data的每个成员起始地址都相同 B)变量data所占内存字节数与成员c所占字节数相等
C)程序
段:data.a=5;printf(\输出结果为5.000000 D)data可以作为函数的实参 (30)有以下程序 #include
fprintf(fp,\fclose(fp);
fp=fopen(\
fscanf(fp,\n\fclose(fp); }
程序运行后的输出结果是 A)1 2 B)1 4
C)123 4
D)123 456
(31)若已定义
int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 则对a数组元素不正确的引用是 A)a[p-a] B)*(&a[i]) C)p[i] D)a[10]
(32)有以下程序 #include
void fun(int ?*s,int n1,int n2) { int i,j,t; i=n1; j=n2;
while(i {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k } 程序的运行结果是 A)0987654321 B)4321098765 C)5678901234 D)0987651234 (33)阅读下列程序,当运行函数时,输入asd af aa z67,则输出为 #include for(i=0;str[i]!=′ \\0′;i++) if(str[i]!=′ ′)str[j++]=str[i]; str[j]= ′\\0′; } main() { char str[81]; int n; printf(\ gets(str); puts(str); fun(str); printf(\} A)asdafaaz67 B)asd af aa z67 C)asd D)z67 (34)有以下程序 int fun(int n) {if(n==1)return 1; else return(n+fun(n-1)); } main() {int x; scanf(\ x=fun(x);printf(\} 执行程序时,给变量x输入10,程序的输出结果是 A)55 B)54 C)65 D)45 (35)下面程序段中,输出*的个数是 char *s=\ for(;*s!='\\0';s++)printf(\ A)9 B)5 C)6 D)7 (36)C语言结构体类型变量在程序运行期间 A)TC环境在内存中仅仅开辟一个存放结构体变量地址的单元 B)所有的成员一直驻留在内存中 C)只有最开始的成员驻留在内存中 D)部分成员驻留在内存中 (37)已知函数的调用形式为 fread(buf,size,count,fp),参数buf的含义是 A)一个整型变量,代表要读入的数据项 总数 B)一个文件指针,指向要读的文件 C)一个指针,指向要读入数据的存放地址 D)一个存储区,存放要读的数据项 (38)设有以下语句 char x=3,y=6,z; z=x^y<<2;