当前位置:文档之家› C语言程序设计期末考试试题及答案知识分享

C语言程序设计期末考试试题及答案知识分享

C语言程序设计试题(2008 /2009 学年第二学期)一.选择题(满分30分,每题2分)1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。

A. a=b=c+8;B. a+=y+3;C. c++;D. a+b+c2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。

A. 1B. 2C. –1D. -23.执行下面程序:#include "stdio.h"void main(){int a=1,b=2,c=3;c=(a+=a+2),(a=b,b+3);printf(“%d,%d,%d”,a,b,c);}则输出结果是: A 。

A. 2,2,4B. 4,2,3C. 5,5,3D. 4,2,54.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。

A. a< >0B. !aC. a=0D. a5. for (j=0;j<11;j++);循环结束后,j的值是 B 。

A. 12B. 11C. 10D. 96. C语言中函数返回值的类型由 D 决定的。

A. return语句中的表达式类型B. 调用该函数的主调函数的类型C. 调用函数时临时决定D. 定义函数时所指定的函数类型7. 下列说法中正确的是 B 。

A 在调用用户自定义函数时,必须对其进行声明。

B 函数可以返回一个值,也可以什么值也不返回。

C 说明函数时,必须明确参数的类型和返回值。

D 在程序设计中空函数没有什么作用。

8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。

switch ( i ){case 0: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}A. 10B. 11C. 12D. 139. 下列语句中不正确的字符串赋值或初始化的是 C 。

A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'};C. char str[10]; str= "strings";D. char str[]= "strings";10. 有如下程序:#include <stdio.h>void main(){int a=1,b=0,c=0;if (a<b)if (b<0) c=0;else c++;printf (“%d\n”,c);}该程序的运行结果是 D 。

A. 3B. 2C. 1D. 011. 在函数调用,对参数传递的说法正确的是 A 。

A 实参和形参各占一个独立的存储单元。

B 实参和形参始终共用一个相同的存储单元。

C 可以由用户指定实参和形参是否共用一个存储单元。

D 可以由系统指定实参和形参是否共用一个存储单元12. 以下正确的程序段是 C 。

A. char str1[ ]= "12345", str2[ ]= "abcdef"; strcpy(str1, str2);B. char str[10], *st="abcde"; strcat(str, st);C. char str[10]= " ", *st="abcde"; strcat(str, st);D. char *st1="12345", *st2="abcde"; strcat(st1, st2);13. 若有定义:int *p[4];则标识符p B 。

A. 是一个指向整型变量的指针B. 是一个指针数组名C. 是一个指针,它指向一个含有四个整型元素的一维数组D. 说明不合法装订线14. 以下程序的运行结果是 C 。

typedef union{long a[1];int b[2];char c[8];} TEST;TEST m;main( ){printf(“%d\n”,sizeof(m));}A. 32B. 16C. 8D. 2415. 设有以下结构体类型:struct st{char name[8];int num;float s[4];}student[50];并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件file.txt 中,以下不正确的形式是 C 。

A.fwrite(student,sizeof(struct st),50,fp);B. fwrite(student,50*sizeof(struct st),1,fp);C. fwrite(student,25*sizeof(struct st),25,fp);D. for(i=0;i<50;i++)fwrite(student+i,sizeof(struct st),1,fp);二、填空题(满分20分,每空2分)1.每个C语言编写的程序必须有一个,并且只能有一个主函数。

2.设x和y均为int型变量,且x=1,y=2,则表达式3+x/y的值为 3 。

3.若有定义:int a[ ]={2,4,6,8,10,12},*p=a;则*(p+1)的值是 4 。

4.设x=0xAB,若要通过x|y使x低4位置1,高4位不变,则y= 0x0F 。

5.测试char型变量m的最高位数据是否为1的表达式是 a&0x80 。

6.若x=2,y=-3则x&&y的结果是 1 。

7.与二进制数101等值的十进制数为 5 。

8.定义int i=1;执行语句 while(i++<5);后,i的值为 6 。

9.下面程序的运行结果为 22222 。

#include <stdio.h>void main(){int i=2,j=5,s;s=i;for (;--j;)s=s*10+i;printf (“%d”,s);}10.写出程序的执行结果: i=10,j=11main ( ){ int i=0,j=0;while (i<10)i++;while (j++<10) ;printf(“i=%d, j=%d\n”,i,j);}三、读程序写结果(满分16分,每题4分)1. 判断下面程序的运行结果。

#include<stdio.h>void main(){int a=0,b=1;int fun(int a,int b);printf("%d\n",fun(a,b));printf("%d\n",fun(a,b));}int fun(int m, int n){static s=1;s++;return(s*(m+n));}2程序运行的结果为: 3 。

装订线2. 以下程序的输出结果是 3,2 。

#include "stdio.h" struct chain {int x; int y;struct chain *p; }m[2];void main( ) {m[0].x=1; m[0].y=2; m[1].x=3; m[1].y=4; m[0].p=&m[1]; m[1].p=m;printf("%d,%d\n",(m[0].p)->x,(m[1].p)->y); }3. 下面程序的运行结果是 7654321 。

#include <stdio.h> #include <string.h>void fun(char *w, int n) {char t,*s1,*s2; s1=w; s2=w+n-1; while(s1<s2) {t=*s1; *s1=*s2; *s2=t; s1++; s2--; } }void main( ) {char p[]="1234567"; fun(p, strlen(p)); puts(p); }4. 下面程序的输出结果为 4,2 。

#include "stdio.h" struct ks {int a; int *b; }s[4],*p;void main( ) {int n=1,i; printf("\n"); for(i=0;i<4;i++) {s[i].a=n;s[i].b=&s[i].a; n=n+1; }p=&s[0]; p++;printf("%d,%d\n",(++p)->a,(p++)->a); }四、程序设计(满分34分)1. 编写一个程序,判断某一年是否为闰年。

(6分)#include <stdio.h> void main() {int year;printf(“input year=”); scanf(“%d ”,&year);if ((year%4==0&&year%100!0)||year%400==0) printf(“%4d is a leap year \n ”,year);elseprintf(“%4d is not a leap year \n ”,year);}装 订装订线2. 用ΛΛ71513114-+-≈π公式求π的近似值,直到最后一项的绝对值小于610-为止,请编程实现。

(8分)#include “math.h ” void main() {int s;float n,t,pi; t=1; pi=0; n=1.0; s=1; while((fabs(t))>1E-6) {pi=pi+t; n=n+2; s=-s; t=s/n; }pi=pi*4;printf(“pi=%10.6f\n ”,pi); }3. 编写程序,利用子函数实现计算字符串的长度。

(10分)#include <stdio.h>int length(char *s); void main( ) {char a[100]; int i;printf("Please input the string:\n"); gets(a); i=length(a);printf("\nThe length of string is %d",i); }int length(char *s) {char *p=s; while(*p) p++; return(p-s); }4.将一个整数字符串转换为一个整数,如"-1234"转换为-1234。

相关主题