logo资料库

2018年浙江宁波大学C程序设计考研真题.doc

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
2018 年浙江宁波大学 C 程序设计考研真题 一、选择题(共 25 题,每题 3 分,共 75 分) ) (1)以下叙述正确的是( A) do-while 语句构成的循环不能用其它语句构成的循环来代替。 B) do-while 语句构成的循环只能用 break 语句退出。 C)用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环。 D)用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环。 ) D) 9 C) 8 B) 7 (2)下列程序执行后的输出结果是( A) 6 void func(int *a,int b[]) { int main() { b[0]=*a+6; } int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d\n",b[0]); return 0; } ) (3) 下列程序的输出结果是( int b=2; int func(int *a) { int main() { b += *a; return(b); } int a=2, res=2; res += func(&a); printf("%d\n",res); return 0; } A) 4 B) 6 C) 8 D) 10 ) (4)下列程序执行后的输出结果是( void func1(int i); void func2(int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); while (i<3){i+=2; printf("%c",st[i]); } } int main() { A) hello (5)以下选项中,与 k=n++完全等价的表达式是( int i=0; func1(i); printf("\n"); C) hlo B) hel return 0; } D) hlm )
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1 (6) 有以下程序 int f(int n) { if (n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1;i<3;i++) printf("%d\n",j); return 0; j+=f(i); } 程序运行后的输出结果是( A) 4 B) 3 ) C) 2 (7) 有以下程序 main() { char *p="abcde\0fghjik\0"; printf("%d\n",strlen(p)); return 0; D) 1 } 程序运行后的输出结果是( A) 12 B) 15 ) C) 6 D) 5 (8) 有以下程序 struct STU { char num[10]; float score[3]; }; main() { struct STU s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s; int i; double sum=0; for(i=0;i<3;i++) sum=sum+p->score[i]; printf("%6.2lf\n",sum); return 0; } 程序运行后的输出结果是( A) 260.00 (9)设有语句 int a=2,b=3,c=-2,d=2; 则逻辑表达式“a>0&&b&&c<0&&d>0”的值是( A)1 C) 280.00 D) 285.00 B) 270.00 ) B)0 C)-1 D)出错 (10)在循环语句的循环体中,break 语句的作用是( ) )
A)继续执行 break 语句之后的循环体内其他各语句; B)提前结束本层循环,接着执行该循环体后续的语句; C)结束本次循环; D)暂停程序的运行. (11)若用数组名作为函数调用的实参,传递给形参的是( A)数组的首地址 C)数组中全部元素的值 B)数组第一个元素的值 D)数组元素的个数 ) (12)已定义以下函数; fun(int *p) { return *p; } 该函数的返回值是( A)不确定的值 C)形参 p 所指存储单元中的值 ) (13)有以下程序 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf("%d\n",s); return 0; B)形参 p 中存放的值 D)形参 p 的地址值 } 程序执行后的输出结果是( A)自然数 1~9 的累加和 C)自然数 1~9 中的奇数之和 D)自然数 1~10 中的偶数之和 B)自然数 1~10 的累加和 ) (14) 若有定义:int aa[8];,则不能代表数组元素 aa[1]地址的是( ) A)&aa[0]+1 C)&aa[0]++ B)&aa[1] D)aa+1 (15)若有如下定义,则 b 的值是( int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b=p[5]; A)5 C)8 ) B)6 D)9 B) 7 C)11 D)12 (16)设有定义:char s[12]="string";则 printf("%d",strlen(s));的输出结果是( ) A)6 (17)若有如下定义,则正确的叙述为( ) char x[]="abcdefg"; char y[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’}; A)数组 x 和数组 y 等价 C)数组 x 的长度大于数组 y 的长度 D)数组 y 的长度大于数组 x 的长度 B)数组 x 和数组 y 的长度相同 (18)以下与库函数 strcpy(char *p1,char *p2)功能不相等的程序段是( A)strcpy1(char *p1,char *p2) ) { while ((*p1++=*p2++)!=’\0’) ; }
B)strcpy2(char *p1,char *p2) { while ((*p1=*p2)!=’\0’) { p1++; p2++ } } C)strcpy3(char *p1,char *p2) { while (*p1++=*p2++) ; } D)strcpy4(char *p1,char *p2) { while (*p2) *p1++=*p2++ ; } (19) 若有定义:int (*p)[4];则标识符 p 是( A)是一个指向整型变量的指针 B)是一个指针数组名 C)是一个指针,它指向一个含有四个整型元素的一维数组 D)定义不合法 ) (20)下面程序应能对两个整型变量的值进行交换。以下正确的说法是( ) swap(int p,int q) { int t; t=p;p=q;q=t; } Int { } main() int a=10,b=20; pirntf("(1) a=%d,b=%d\n",a,b); swap(&a,&b); printf("(2) a=%d,b=%d\n",a,b); return 0; (A) 该程序完全正确 (B) 该程序有错,只要将语句 swap(&a,&b); 中的参数改为 a,b 即可 (C) 该程序有错,只要将 swap()函数中的形参 p 和 q 以及 t 均定义为指针(执行语句不变) 即可 (D) 以上说法都不正确 B) 3,4 C) 3, 3 (21)当变量 i=3 时,表达式++i 和表达式 i++的值分别是( A) 4,3 (22)下列说法不正确的是() A)形式参数是局部变量。 B)不同的函数中,可以使用相同名字的变量。 C)在一个函数的内部,可以在复合语句中定义变量。 D) 4, 4 ) D)主函数 main 中定义的变量在整个文件或者程序中都有效 (23)为了避免嵌套的 if-else 语句的二义性,C 语言规定 else 总是与( 系。 A) 缩排位置相同的 if C) 在其之前尚未配对的最近的 if B) 在其之前未配对的 if D) 同一行上的 if )组成配对关
(24)以下符合语法规则的用户标识符是( A) 1st C) B757 B) break ) D) Two Words (25)sizeof(float)是( A)一个双精度型表达式 C)一种函数调用 ) B)一个整型表达式 D)一个不合法的表达式 二、程序阅读题(共 6 题,每题 5 分,共 30 分) (1)下列程序执行后的输出结果是 int main() { int i, j; for(i=0; i<10 ; i++) { j=i*10+6; if( i%3!=0 ) continue; printf("%d",j); } return 0; } (2)以下程序运行后的输出结果是 main() { int x=15; while(x>10 && x<50) { x++; if(x/3){x++;break;} else continue; } printf("%d\n",x); return 0; } (3)以下程序运行后的输出结果是 main() { int i,m=0,n=0,k=0; for(i=9; i<=11;i++) switch(i/10) { case 0: m++;n++;break; case 10: n++; break; default: k++;n++; } printf("%d %d %d\n",m,n,k); return 0; }
(4)写出下面程序的运行结果 func(char *s,char a,int n) { int j; *s=a; j=n ; while (*s
题目 2:统计单词个数 【问题描述】统计一个英文句子(长度不大于 80)中含有英文单词的个数,单词之间用空格 隔开。 【样例输入】 Hello World! 【样例输出】 num=2 题目 3:三位数加法 【问题描述】两组三位整数数据链表,用结构体 ListNode 表示,每个节点只放一位数字: struct ListNode { int val; struct ListNode *next; }; 要求建立如下例的链表,并利用链表实现加法运算。 //说明:表示 342+465 【样例输入】 (2->4->3)+(5->6->4) (5->6->7)+(7->8->9) 【样例输出】 (7->0->8) (2->5->7->1)
分享到:
收藏