吉林大学C语言试题及答案
更新时间:2023-03-15 03:59:01 阅读量: 教育文库 文档下载
…………… … … … … … … 线号…学… … … … … … … …名…姓订 … … … … … … …业…专…级…年装 … … … … … … …系…院………吉林大学农学部2008-2009学年第一学期《C语言程序设计》考试试卷(A卷) {static int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; (考试时间:120分钟,本卷共4页,共印820份 for(i=1;i<3;i++)
一、选择题(本题共有15道小题,每道小题2分,满分30分) for(j=0;j<=i;j++) s+=a[i][j]; 1.C语言中,int类型数据占2个字节,则long类型数据占( ) printf(“%d”,s); A、1个字节 B、2 个字节 C、3个字节 D、4个字节 }
2.以下说法中正确的是( ) 该程序的输出结果是( )
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函A、18 B、19 C、20 D、21
数中定义 C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部 7.执行下列程序时输入123<空格>456<空格>789<回车>,输出结果是( )。
分 #include
main( ) {char s[100]; int c, i;
{ int x=3,y=0,z=0; scanf(\ scanf(\ scanf(\ if(x=y+z) printf(“****”); printf(\ else printf(“####”); }
}A、有语法错误不能通过编译 B、输出****C、可以通过编译,但不能通过连接,因而不能运A、123,456,789 行 D、输出#### B、1,456,789 4.以下程序的输出结果是( ) C、1,23,456,789 void func(int *a,int b[]) { b[0]=*a+6; } D、1,23,456
main() {int a,b[5]; 8.以下对C语言函数的描述中,正确的是( )。
a=0; b[0]=3; A、C程序由一个或一个以上的函数组成 func(&a,b); printf(\\n\[0]); B、C函数既可以嵌套定义又可以递归调用
} A)6 B)7 C)8 D)9 C、函数必须有返回值,否则不能使用函数
5.以下程序的输出结果是( ) D、C程序中调用关系的所有函数必须放在同一个程序文件中
main( ) 9.以下函数值的类型是( )。
{ int x=10,y=10,i; fun ( float x ) for(i=0;x>8;y=++i) {float y; printf(“%d %d”,x--,y); y= 3*x-4; } return y; A、 10 1 9 2 B、 9 8 7 6 C、10 9 9 0 D、10 10 9 1 }
6.有如下程序 A、int B、不确定 C、void D、float
main( ) 10.一个C程序由函数A( ),B( ),C( )和函数P( )构成,在函数A( )中分别调用了函数B( )和函数C( ),在函数
第 1 页 共 9 页
B( )中调用了函数A(),且在函数P( )中也调用了函数A( ),则可以说( )。
A、函数B( )中调用的函数A( )是函数A( )的间接递归调用B、函数A( )被函数B( )调用是直接递归调用C、 int k;
} r;
函数P( )直接递归调用了函数A( )D、函数P( )中调用的函数A( )是函数P( )的嵌套
11.对于int *pa[5];的描述,( )是正确的
A、pa是一个指向数组的指针,所指向的数组是5个int 型元素 B、pa是一个指向某数组中第5个元素的指针,该指针是int 型变量 C、pa[5]表示某个数组的第5个元素的值
D、pa是一个具有5个元素的指针数组,每一个元素是一个int 型指针
12.执行以下程序后,y的值是( )
main( )
{ int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf(“%d\\n”,y); }
A、17 B、18 C、19 D、20
13.有以下程序段
char arr[]=”ABCDE”; char *ptr;
for(ptr=arr;ptr
A、ABCDE B、A C、 E D、ABCDE
B D BCDE
C C CDE D B DE E A E
14.以下程序的输出结果是( )
main()
{ union { char i[2];
r.i[0]=2; r.i[1]=0; printf(“%d\\n”,r.k); } A、 2
B、 1
C、 0
D、 不确定
15.在C程序中,可以把整型数以二进制形式存放到文件中的函数是( )
A、fprintf函数 B、fread函数 C、fwrite函数 D、fputc函数
9二、填空题(本题共有5道小题,每道小题2分,满分10得 分 分) 1.在C语言中使用到的变量,都应先(定义 ),后( 使用 )。
2.若有定义:char c=′\\010′;则变量c中包含的字符个数为__1个____。 3.函数的返回值是通过函数中的( return )语句获得的。
4.下面函数用来求出两个整数之和,并通过形参传回两数相加之和,请填空。
int add(int x,int y,( int)z) { ( * )=x+y;}
5.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是___22个___。
struct stud {char num[6]; int s[4]; double ave; }a;
`三、分析程序结果(本题共有4道小题,每道小题5分,满分20分) 1.main( )
{ int x=1,y=2,z=3;
x+=y+=z;
printf(\}5
2.main( )
{ int a=24,b=16,r; while (b)
第 2 页 共 9 页
{ r=a%b; a=b; b=r; }
printf(\}8
3. #include
int p(int k,int a[]) {int m,i,c=0; for(m=2;m<=k;m++){ for(i=2;i<=m;i++) if(!(m%i)) break; if(i==m) a[c++]=m; } return c; }
#define MAXN 20 main( )
{ int i,m,s[MAXN]; m=p(13,s); for(i=0;i 程序输出结果为( 2 3 5 7 11 质 数 , 并 依 次 存 数 4.int f(int b[ ],int n) { int i, s=0; for(i=0; i<=n; i+=2) s+=b[i]; return s; } main( ) { int x,a[ ]={2, 3, 4, 5, 6, 7, 8, 9}; x=f (a, 5); printf(“%d”,x ); }12 `#### 四、程序填空题(本题共有4道小题,每道小题5分,满分20分)1.程序打印如下形式的图形 * * * * * * * * * * main( ) { for(int i=1;i<=4;i++) { for(int j=1; ① ;j++) j<=i printf( ② ); \printf( ③ ); \} } 2.以下函数返回数组s中最大元素的下标,数组中元素的个数由t传入。 Findmax(int s[],int t) { );函数int p(int k,int a[])的功能为(求k以内(含k) int m,n; 入 数 组 a 中 , 返 回 质 数 个 for(n=0,m=n;n ) if(s[n]>s[m]) ( m=n ); return ( m ); } 3.函数strcpy( )将字符串from复制到字符串to。 第 3 页 共 9 页 void strcpy( char *to ) { while( char *from ); } 10.A11.D 12.C 13.D 14.A 15.C 9`二、填空题(每题2分 共10分)1.定义 使用 2.1个 3. return 4.int * 5.22 三、分析程序结果(每题5分 共20分)1.5 2.8 3. 2 3 5 7 11 求k以内(含k) 质数,并依次存入数组a中,返回质数个数。4.12 4.下面的程序的功能是:利用指针统计一个字符串中,字母、空格、数字、 及其它字符的个数,请填空。 #include 四、程序填空(每题5分 共20分)1.① j<=i ② \ ③ \ 2.m=n、m 3.char *to, char *from或char *from,char *to *to++=*from++4. ( *p>=’A’&& *p<=’Z’) || ( *p>=’a’&& *p<=’z’))、( *p==’ ‘|| { int alpha,space,digit,other; *p==’\\t’)、 char *p,s[80]; ( *p>=’0’ && *p <=’9’) alpha=space=digit=other=0; 五、编程题(每题10分 共20分) printf(“input string:\\n”); 1.int sum(int n) gets(s); { int s; for(p=s;*p!=’\\0’;p++) if (n==0) s=0; if( )alpha++; else s=sum(n-1)+n; else if( )space++; return(s); else if( )digit++; } else other++; 2. #include } { int i, index, k, n, temp; `#### int a[20]; /* 定义1个数组a,它有20个整型元素*/ 五、编程题(本题共有2道小题,第一题5分,第二题15分,满分20分) printf(“Please enter integers: \ for(i = 0; i < 20; i++) scanf(\ 1. 编写一个递归函数,计算1+2+3+......+n 的和。 printf(\ 2. 编程序,实现如下功能: (1)从键盘上输入20个整型数据(注:程序要提示输入方式); for(i = 0; i < 20; i++) /* 输出排序前20个数组元素的值 */ (2)输出此20个数据; printf(\ (3)对此20个数据按从小到大顺序进行排序; (4)输出排序结果。 for(k = 0; k < 19; k++){ /* 对20个数排序 */ 《C语言程序设计》考试试卷(A卷)答案及评分标准 index = k; for(i = k + 1; i < 20; i++) 一、选择题(每题2分 共30分) 1.D 2.C 3.D 4.A 5.D 6.A 7.D 8.A 9.A if(a[i] < a[index]) index = i; temp = a[index]; a[index] = a[k]; a[k] = temp; 第 4 页 共 9 页 …………… … … … … … … 线号…学… … … … … … … …名…姓订 … … … … … … …业…专…级…年装 … … … … … … } main() {int i=1,j=1,k=2; printf(\ if((j++||k++)&&i++) printf(\\n\); for(i = 0; i < 20; i++) /* 输出排序后20个数组元素的值 */ } printf(\执行后输出结果是 。 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 return 0; 10、有如下程序 main() {float x=2.0,y; if(x<0.0)y=0.0; 吉林大学农学部2008-2009学年第一学期《C语言程序设计》考试试卷(B卷)else if(x<10.0)y=1.0/x; (一、单项选择题,答案不写入答题栏的一律不得分!(每题1.5分,共52.5分) else y=1.0; printf(\\n\);} 1、结构化程序设计的3种结构是 。 该程序的输出结果是 。 A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构 A)0.000000 B)0.250000 C)0.500000 D)1.000000 C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构 11、有如下程序: 2、以下叙述中正确的是 。 main() A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 {int n=9; C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 while(n>6){n--; printf(\);} D)C语言出现的最晚,具有其他语言的一切优点 } 3、C语言中最简单的数据类型包括 。 该程序的输出结果是 。 A)整型、实型、逻辑型 B)整型、实型、字符型 A)987 B)876 C)8765 D)9876 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型 12、在下列选项中,没有构成死循环的是 。 4、若变量已正确定义并赋值,以下符合C语言语法的表达式是 。 A)int i=100; A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b while(1) 5、若变量a,i已正确定义,且i已正确赋值,合法的语句是 。A)a= =1 B)++i; C){i=i0+1; a=a++=5; D)a=int(i); if(i>100)break; 6、已知: } int t=0; B)for(;;); while(t=1){...} C)int k=10000; 则以下叙述正确的是 。 do{k++;}while(k>10000); A)循环控制表达式的值为0 B)循环控制表达式的值为1 D)int s=36; C)循环控制表达式不合法 D)以上说法都不对 while(s)- -s; 7、若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,13、设int x=1,y=1;表达式(!x||y--)的值是 。 c赋予33.0,下列不正确的输入形式是 。 A)0 B)1 C)2 D)-1 A)10<回车>22<回车>33<回车> B)10.0,22.0,33.0<回车> 14、有以下程序 C)10.0<回车>22.033.0<回车> D)10 22<回车>33<回车> float fun(int x,int y) 8、有如下程序: {return(x+y);} main() main() { int x=1,a=0,b=0; {int a=2,b=5,c=8; switch(x) printf(\\n\((int)fun(a+c,b),a-c)); { } case 0: b++; 程序运行后的输出结果是 。A)编译出错 B)9 C)21 D)9.0 case 1: a++; 15、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 。case 2: a++;b++; A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 } C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 printf(\\n\);} 该程序的输出结果是 16、若有以下调用语句,则不正确的fun函数的首部是 。 A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 main() 9、有以下程序 { ? 第 5 页 共 9 页 int a[50],n; ? fun(n, &a[9]); ? } A)void fun(int m, int x[]) B)void fun(int s, int h[41]) C)void fun(int p, int *s) D)void fun(int n, int a) 17、fseek函数的正确调用形式是 。 A)fseek(文件指针,起始点,位移量) B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针) D)fseek(起始点,位移量,文件指针) 18、若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是 。 A)EOF B)-1 C)1 D)NULL 19、若有说明语句:char c='\72'; 则变量c 。 A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 20、若有说明 int a[3][4];则a数组元素的非法引用是 。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 21、设有以下说明语句 struct stu {int a; float b; } stutype; 则下面的叙述不正确的是 。 A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名 22、在C语言中,引用数组元素时,其数组下标的数据类型允许是 。 A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式 23、若运行时给变量x输入12,则以下程序的运行结果是 。 main() {int x,y; scanf(\); y=x>12?x+10:x-12; printf(\\n\); } A)0 B)22 C)12 D)10 24、以下说法正确的是 。 A)C语言程序总是从第一个的函数开始执行 B)在C语言程序中,要调用函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 25、表达式0x13^0x17的值是 。 A)0x04 B)0x13 C)0xE8 D)0x17 26、有以下程序 #define F(X,Y)(X)*(Y) main() {int a=3, b=4; printf(\\n\(a++, b++)); } 程序运行后的输出结果是 。 A)12 B)15 C)16 D)20 27、下列程序执行后的输出结果是 。 void func(int *a,int b[]) { b[0]=*a+6; } main() {int a,b[5]; a=0; b[0]=3; func(&a,b); printf(\\n\[0]); } A)6 B)7 C)8 D)9 28、若有下面的程序段: char s[]=\ 则下列叙述正确的是 。 A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等 29、有以下程序 void sort(int a[],int n) {int i,j,t; for(i=0;i if(a[i] main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=0;i<10;i++)printf(\[i]); printf(\\n\); } 程序运行后的输出结果是 。 A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3, 30、以下程序的运行结果是 。 #include \ main() {struct date {int year,month,day;}today; printf(\\n\(struct date)); } A)6 B)8 C)10 D)12 31、若有语句int *point, a=4;和 point=&a;下面均代表地址的一组选项是 。 A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point 32、已定义以下函数 fun(char *p2, char *p1) { 第 6 页 共 9 页 while((*p2=*p1)!='\0'){p1++;p2++;} } 函数的功能是 。 A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否有'\0' if(!(i%5)) printf (\\n\); } printf (\\n\); } 39、调用C语标准库函数时要求用 命令。 33、若执行下述程序时,若从键盘输入6和8时,结果为 。 main() {int a,b,s; scanf(\); s=a if(a printf(\); } A)36 B)64 C)48 D)以上都不对 34、下列关于C语言数据文件的叙述中正确的是 。 A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件 C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 35、有以下程序 void ss(char *s,char t) {while(*s) {if(*s= =t)*s=t - 'a'+ 'A'; s++; } } main() {char str1[100]=\ ss(str1,c); printf(\\n\); } 程序运行后的输出结果是 。 A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd 二、填空题,答案不写入答题栏的一律不得分!(每空2分,共30分) 36、以下程序段的输出结果是 。 main() 得 分 {int a=2,b=3,c=4; a*=16+(b++)-(++c); printf(\); } 37~38、若变量n中的值为24,则print()函数共输出 行,最后一行有 个数。 void print (int n,int aa[]) {int i; for (i=1; i {printf (\[i]); 40、stract函数的作用是 。 41、C语言程序的注释可以出现在程序中的任何地方,一个注释以 作为开始和结束。 42、设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是 。 43、若已知a=10,b=20,则表达式!a 44、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为 。 for(i=0, j=10; i<=j; i++, j--)k=i+j; 45~46、下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。randomize()是初始化随机数生成器函数,rand()返回一个随机数函数。请填空。 #include void fun(int a[],int n, int *max, int *d) { int i; *max=a[0]; *d=0; for(i=0; ;i++) if(*max< ) {*max=a[i];*d=i;} } main() { int i, x[20], max, index, n=10; randomize(); for(i=0;i x[i]=rand()P; printf(\[i]); } printf(\\n\); fun(x,n,&max,&index); printf(\\n\); } 47、以下程序的输出结果是 。 void fun() { static int a=0; a+=2; printf(\); } main() { int cc; for(cc=1;cc<4;cc++)fun(); printf(\\n\); 第 7 页 共 9 页 } 48、以下程序的输出结果是 。 #define MAX(x,y)(x)>(y)?(x):(y) main() { int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf(\\n\); } 49、下列y的值是 。 int y; y=sizeof(2.25*4); 50、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str) { int i; for(i=0; != ′\0′;i++); return(i); } printf(\ for (i=0;i<3;i++) for (j=0;j<3;j++) scanf(\ minus=a[0][0]; for (i=1;i<3;i++) minus=minus+a[i][i]; printf(\ } 52. #include char stu_num[6]; char name[8]; float score[3]; 三、程序设计题。要求程序结构清晰,没有逻辑错误,书写工整,无需写出运行结果。请写在float avr; 背面并标明题号(第51题7.5分、第52题10分,共17.5分,按关键步骤评分) }stu[N]; 51、输入一个3╳3的整数矩阵,求其对角线元素之和。 得 分 52、有10个学生,每个学生的数据包括学号(stu_num,6个字符,如s00101)、姓名void main() (name,8个字符)、三门课程的成绩(score[3],实型)及其平均分(avr,实型,初始时不赋值,)。首{ 先输入这10个学生的数据,然后再计算每个学生3门课程的平均分,存回avr中,并输出第6号学生的所有float sum; 信息。 int i,j; for (i=0;i {printf(\ printf(\ 一、选择题(每题1.5分 共52.5分)1.D 2.C 3.B 4.B 5.B 6.B 7.B 8.A scanf(\ 9.C 10.C11.B 12.D 13.B 14.B 15.D16.D 17.B 18.C 19.A 20.D21.C 22.C printf(\ scanf(\ 23.A 24.C 25.A26.A 27.A 28.D 29.C 30.A31.D 32.A 33.B 34.D 35.B for (j=0;j<3;j++) {printf(\ 9`二、填空题(每题2分 共30分) scanf(\此处的&运算符是指取结构体数组中元素的地址*/ 36. 28 37. 5 38. 4 39. Include 40. 连接两个字符数组中的字符串 } 41. /* */ 42. 1111 0000 43. 1 44. 10 45. i for (i=0;i 48. 7 49. 8 50. *(str+i)或者写成str[i] {sum=0; for (j=0;j<3;j++) 三、程序设计题。要求程序结构清晰,没有逻辑错误,书写工整,无需写出运行结果。(第51 sum+=stu[i].score[j]; 题7.5分、第52题10分,共17.5分,按关键步骤评分) stu[i].avr=sum/3.0; 51. } #include printf(\ void main() printf(\ { for (j=0;j<3;j++) int a[3][3],minus; printf(\ int i,j; 第 8 页 共 9 页 printf(\ } 第 9 页 共 9 页
正在阅读:
吉林大学C语言试题及答案03-15
第一次当模特作文600字07-16
密码学10-31
遇上碎片化的生活作文800字07-14
古代蒙学基础书法教育初探01-30
谁是目前中国厨房小家电中的领袖品牌08-21
青岛版五年级科学上册实验12-25
西安落户政策梳理2014060508-15
物流管理专业介绍02-06
英语爱好者协会迎新晚会新闻稿05-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 吉林大学
- 试题
- 答案
- 语言
- 富川瑶族自治县秀水“状元村”毛姓家族的传统教育模式
- 中等职业教育招生困境及对策研究
- 最新冀教版七年级下册英语Unit1单元检测试卷含答案
- 湖水污染问题的数学建模与求解
- 认证数据中心(CDCP,CDCS,CDCE,CDFOM)相关培训及证书
- 步步高2016届高考化学大一轮复习配套导学案第12章 课后练习58 醇和酚 doc
- 跑冒滴漏管理制度(20100518)
- 学前心理学各章重点
- 色谱法
- 人教部编本八年级语文上册1《消息二则》同步练习
- 高中英语自荐信申请信万能句型整理好的
- 银行不良贷款问题的数学模型
- 印刷原理复习
- 技术经济学答案
- 第6章 集成运算放大器的应用课后习题及答案
- 安全为生命护航-答案(1)
- 大学生村官创业能力培训班学习心得体会
- 体检服务质量考核办法
- 年中工作总结及下半年工作计划
- 通行能力及服务水平整理版