1996 年浙江省高校非计算机专业学生 计算机等级考试试卷(二级C语言)
试题四 判断题(5分)
请判断下列5个叙述是否正确,在答卷的相应位置处填上\√\正确)或\×\错误)。 1. 系统软件就是买来的软件,应用软件就是自己编写的软件。 2. 实数类型的变量不宜进行相等比较。
3. 计算机病毒也是一种程序,它在某些条件下激活,起干扰破坏作用,并能传染到其它程序中去。
4. 软件测试的目的是为了证明程序是正确的。 5. 描述算法的语言都是计算机程序设计语言。
试题五 计算题(共16分)
㈠ 定义:int a=20,n=10; 分别写出执行下列语句后a的值:(6分) ⑴ a/=a+a; ⑵ a%=n%=7; ⑶ a+=a-=a*=a; ㈡ 定义: int x=10,y=7,z=5; 计算下列表达式的值:(6分)
⑴ x=y>x?y:z ⑵ (int)x/y/(int)z ⑶ x=x+5,y+?A?
㈢ 定义:int i=10,s=0; 分别执行下列语句后,s和i的值是多少?(4分) ⑴ while (s+=i--,--i); ⑵ while (i!=0) {i--;s+=--i;};
试题六 阅读程序题(共22分)
㈠ 求以下四段程序题运行结束后s的值:(16分) ⑴ #include
s=0; for(j=1;j<5;j++) { k=j%3; if(k==0)continue; s+=k; } printf(\ }
⑵ #include
for(j=1;j<5;j++){ k=j%3;if(k==0)break;s+=k;}printf(\ }
⑶ #include
{ int x=4; static int y=5; x*=2; y*=2; return(x+y); } void main( ) { int j,s=0;
for(j=0;j<2;j++) s=kk(); printf(\ }
45
⑷ #include
{ int x=4; static int y;
y=5; x*=2; y*=2; return(x+y); }
void main( ) { int j,s=0;
for(j=0;j<2;j++) s=kk ( ); printf (\ }
㈡ 写出下面程序的输出结果:(6分) #include
{ char *str1[]={\ p2=str1; p1=*(++p2)+2; *p1=++(*(++p1)); printf (\
p3[0]=p2; p3[1]=++p2; p3[2]=p2-1;p4=p3; printf(\ return; }
试题七 填充题(共20分)
㈠ 在以下嵌套结构中填空,给出李明的姓名,年龄(20),性别(男),生日(1976年5月6日),语种(C)及系别(计算机系)的信息,并输出这些信息。(12分) #include
struct date{ int month; int day; int year; };
struct student { ⑴ name[20]; ⑵ age; ⑶ sex;
⑷ date birthday; ⑸ language; ⑹ department[30]; };
void main( )
{ struct student s1= ⑺ ; printf ⑻ ; }
㈡ 将编号从⑴到⑾的11位同学围成一圈,从第一号开始,按以下规则发贺卡:
F(1)=1,F(2)=2,F(n+1)=F(n)+F(n-1) 其中F(n)表示第n张贺卡发给了第F(n)。超过11时,F(n)绕圈计算(如F(n)=13,是发给了第⑵号同学的),如果发了20张贺卡,问各位同学分别发到了多少张贺卡?请填空完成以下程序,其中x[i]表示第i号同学发到的张数。(8分) #include
{ int a, b, c, i, k, x[12]; a=0; b=1; i=1;
while( ⑴ ) { x[i]=0; i++; } i=1; while( ⑵ ) {
46
c=a+b; k= ⑶ ; if(k==0)k=11; x[k]++;a=b;b=c;i++; }
k=1; while( ⑷ ){ printf(\ }
试题八 编程题(共22分)
㈠ 按以下编程说明编写C程序(10分)
定义一个6X6的整数矩阵A(其中元素均为不超过5位的整数),从键盘上输入该矩阵A的值,对矩阵A中不包括主对角线在内的上三角部分(列号大于行号)的每个元素的值加1,然后行列对齐输出矩阵A。
㈡ 编写一个函数char *delk (char *sp),把SP所指向的字符串中所有'$'字符删除,并把处理后的字符串的指针返回。(12分)
47
1996 年秋浙江省高校非计算机专业学生 计算机等级考试试卷(二级C语言)
试题三、计算题(本题共24分)
㈠ 定义int i=3,j=5;分别将执行下述语句后i、j的值填入答卷对应行栏内(12分) ⑴ i=(--i ⑶ i*=3+2%i; j=(i ㈡ 分别将执行下述语句后i的值填入答卷的对应栏内(12分) ⑴ char c='2'; int i=0; switch (c+1-'0') { case 2: i+=1; case 3: i+=2; case 3: i+=3; } ⑵ for(i=0,j=1;j<10;j++) { if(j%2) continue; i+=j; } ⑶ static struct s{ int x, y[2];} a[]={1,2,3,4,5,6,7,8}, *p=a; int i; i=*((int*)(p+1)+2); 试题四、阅读程序(共21分) 请写出下列程序的运行结果 ⑴ #include \ void putsymb (int); void main( ) { int i, n=7; for(i=1;i<=n;i++) { putsymb(n-1); putchar('a'+i); putchar ('\\n'); } } void putsymb(int n) { int i; for(i=1;i<=n;i++) putchar('*'); } ⑵ f(char *s) { int k=0; while(*s) k+=*s++-'0'; return k; } void main( ) { printf(\ 48 ⑶ void main( ) { int x=1,y=2; int funcl( ); y=funcl(&x,&y); x=funcl(&x, &y); printf(\ } funcl(int *a,int *b) { if(*a>*b) (*a)-=*b; else (*a)--; return(*a+*b); } 试题五、填充题(共21分) 阅读下列程序和说明,把应填入 () 处的内容写在答卷的对应栏内。 ⑴ 下述程序建立一个按以下格式输出的二维数组。 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 #include { int a[5][5]={0},*p[5],i,j; for(i=0;i<5;i++) p[i]= ⑴ ; for(i=0;i<5;i++) { *(p[i]+i)=1; *(p[i]+ ⑵ )=1; } for(i=0;i<5;i++) { for(j=0;j<5;j++) printf(\⑶ ; } } ⑵ 下述程序在有序链表中插入操作S,其中Head为链表头指针,S指向待插入的节点。 struct st { int num; struct st *next; }; struct st *insert(struct st *Head, struct st *s) { struct st,*p0,*p1,*p2; p1=Head; p0=s; if(p1==NULL) { ⑴ ; p0->next=NULL; } else while((p0->num->p1->num)&&(p1->next!=NULL)) { p2=p1; p1=p1->next; } 49 搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育C习题集 (5)全文阅读和word下载服务。
相关推荐: