当前位置:首页 > 《C语言程序设计》
j++; } s[i+j]='\\0'; printf(\,s); }
(A) abcdabcdefg (B)abcdefg (C)abcd (D)abcdefgabcd 29.有如下程序 main()
{ char ch[2][5]={\,\ int i, j, s=0;
for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++)
for(j=0;p[i][j]>'\\0';j+=2) s=10*s+p[i][j]-'0'; printf(\,s); }
该程序的输出结果是( ) 。
(A)69825 (B)63825 (C)6385 (D)693825 30.若已建立如下图所示的单向链表结构
在该链表中,指针p,s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是( ) 。
(A) p=p->next;s->next=p;p->next=s; (B) p=p->next;s->next=p->next;p->next=s; (C) s->next=NULL;p=p->next;p->next=s (D) p=(*p).next;(*s).next=(*p).next; (*p).next =s; 31.请选择正确的运行结果填入( ) 中。 include
int a=15,b=10; int x,y; y=a-b; y=a+b; return; } main()
{ int a=7,b=5; x=a+b; y=a-b;
num(); printf(\,%d\\n\,x,y); }
(A) 12,2 (B) 5,25 (C)2,12 (D)不确定 32.以下程序的输出结果是( ) 。
#define M(x,y,z) x*y+z main()
{ int a=1,b=2,c=3;
printf(\,M(a+b,b+c,c+a)); } (A)19 (B)17 (C)15 (D)12 第二卷
说明:(1)第二卷含两大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。 (2)每空栏填对得3分,两大题共10个空栏,全对得30分。 试题一:
有一函数,实参传来一个字符串,统计此字符串中字母、数字、空各和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
int letter,digit,space,others; /*是全局变量*/ main()
{int count(char _____(1)_____); char text[80];
printf(\:\\n\; ____(2)___; printf(\:\; puts(text); letter=O; digit=O; space=O; others=O; _____(3)_____;
printf(\:%d,digit:%d,space:%d,other:%d\\n\, space,others); }
int count(char str[]) {int i;
for(i=O;str[i]!='\\0';i++)
if((____(4)____>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) letter++; else if(str[i]>='0'&&str[i]<='9') digit++; else if(str[i]==' ') space++; else
____(5)____; } 试题二:
把下列程序补充完整,实现两个字符串的比较,即自己写个strcmp函数,函数原型 为:int strcmp(char *p1,char *p2)
设p1指向字符串s1,p2指向字符串s2。要求:当s1=s2时,返回值为0。当sl<>s2时,返回它们两者的第一个不同的字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如果sl char ___(6)____,str2[20],*p1,*p2; printf(\:\\n\; scanf(\; scanf(\,___(7)______); p1=&strl[0]; p2=_____(8)_____; m=strcmp(p1,p2); printf(\ } strcmp(char ___(9)_____,char *p2) /*两个字符串比较的函数*/ { int i; ____(10)______; while(*(pl+i)==*(p2+i)) if(*(p1+i++)=='\\0') return(0); return(*(pl+i)-*(p2+i)); /*不等时返回结果为第一个不等字符ASCII码的差值*/ } 参考答案 第一卷 第一部分:基础知识 1.A 2.B 3.B 4.A 5.C 6.A 7.B 8.D 9.B 10.D 11.A 12.C 13.A 14.A 15.D 16.C 17.D 18.C 19.A 20.B 第二部分:简单程序 21.D 22.C 23.B 24.D 25.D 26.B 27.A 28.D 29.C 30.A 31.A 32.D 第二卷 试题一: 1、str[] 2、gets(text)或scanf(“%s”,text) 3、count(text) 4、str[i] 5、others++ 试题二:6、str1[20] 7、str2 8、&str2[0] 9、*p1 10、i=0 C语言程序设计》( 卷)考核班级 学生数 印数 考核方式 闭卷 考核时间 120 分钟 (本试卷包括第一卷和第二卷,答卷时间总共120分钟) 第一卷 本卷共70分,其中第1~26题每题2分,第27~32题每题3分。 第一部分:基础知识 1、 一个C语言程序是从______开始执行的。 A、程序中的第一个语句 B、包含文件(头文件)的第一个函数 C、名为main的函数 D、程序中的第一个函数 2、 语句while(!E) { ??}中的条件!E等价于_____ A、E==0 B、E!=1 C、E!=0 D、~E 3、 若有以下类型说明语句: char w; int x; float y; double z; 则表达式w*x+z-y的结果为_____类型。 A、float B、double C、int D、char 4、 一个函数返回值的类型是由____决定的 A、return语句中的表达式类型; B、定义函数时所指定的函数类型 C、调用该函数的函数的类型 D、调用函数时临时类型 5、 设x、y、z和k都是int型变量,则执行下列表达式后,变量x的值为_____. x=(y=4,z=16,k=32); A、4 B、16 C、32 D、52 6、 有以下程序: main( ) { int i=10,j=1; printf(“%d,%d\\n”,i--,++j); } 执行后输出的结果是________ A、9,2 B、10,2 C、9,1 D、10,1 7、 以下指针s的指字符串的长度为_______ char *s=”\\t\\?Name \\\\Address\\n”; A、19 B、15 C、18 D、-12 8、 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是____ A、3 B、0 C、9 D、-12 9、 对于下面的for循环语句,可以断定它____。 for(x=0,y=0;(y!=123)&&(x<4);x++) printf(“--------“); A、是无限循环(死循环) B、循环次数不定 C、共执行4次循环 D、共执行3次循环 10、 设有以下语句,则_______不是对a数组元素的正确引用,其中
共分享92篇相关文档