《南京信息工程大学C语言程序设计A》由会员分享,可在线阅读,更多相关《南京信息工程大学C语言程序设计A(9页珍藏版)》请在金锄头文库上搜索。
1、第 1 页 /共 9 页 南京信息工程大学试卷南京信息工程大学试卷 2010 2011 学年学年 第第 2 学期学期 C 语言程序设计语言程序设计课程试卷课程试卷( A 卷卷) 本试卷共本试卷共 9 页页;考试时间考试时间 120 分钟分钟;任课教师任课教师 ;出卷时间;出卷时间 2011 年年 6 月月 学院 专业 2010 年级 班 学号 姓名 得分 一、一、选择题 (每题 1 分,共 15 分) 1.一个 C 语言程序的执行是从 A)本程序的 main 函数开始,到 main 函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的 main 函数开始,到本
2、程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序 main 函数结束 2.C 语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母、数字和下划线中的任意一种 3.设变量 a 是整型,f 是实型,i 是双精度型,则表达式 10+a+i*f 值的数据类型为 A)int B)float C)double D)不确定 4设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab) B)scanf(“%f”, C)scanf(“%lf”, D)scanf(“%5.1f”, 6.以下程
3、序段的循环次数是 。 for (i=2; i=0; ) printf(“%d”,i-) ; A)无限次 B)0 次 C)1 次 D)2 次 11.以下程序输出结果是 。 #include int main ( ) 第 2 页 /共 9 页 int x=1,y=0,a=0,b=0; switch(x) case 1:switch (y) case 0 : a+ ; break ; case 1 : b+ ; break ; case 2:a+; b+; break; case 3:a+; b+; printf(“a=%d,b=%d”,a,b); return 0; A)a=1,b=0 B)a=2
4、,b=1 C)a=1,b=1 D)a=2,b=2 8.以下不正确的说法是 。 A)实参可以是常量,变量或表达式 B)形参可以是常量,变量或表达式 C)实参可以为任意类型 D)如果形参和实参的类型不一致,以形参类型为准 9C 语言规定,程序中各函数之间 。 A)既允许直接递归调用也允许间接递归调用 B)允许直接递归调用不允许间接递归调用 C)不允许直接递归调用也不允许间接递归调用 D)不允许直接递归调用允许间接递归调用 10. 对于定义“int a10;“的正确描述是: 。 A) 定义一个一维数组 a,共有 a1到 a10共 10 个数组元素 B) 定义一个一维数组 a,共有 a(0)到 a(9
5、)10 个数组元素 C) 定义一个一维数组 a,共有 a0到 a910 个数组元素 D) 定义一个一维数组 a,共有 a(1)到 a(10)10 个数组元素 11.已知下列程序段: char a3, b=“Hello“; a=b; printf(“%s“, a); 则 。 A) 运行后将输出 Hello B) 运行后将输出 He C) 运行后将输出 Hel D) 编译出错 12.变量的指针,其含义是指该变量的 。 A)值 B)地址 C)名 D)一个标志 13.若有说明:int *p,m=5,n;以下程序段正确的是 。 A)p= B)p = scanf(“%d”, scanf(“%d”,*p);
6、 C)scanf(“%d”, D)p = 第 3 页 /共 9 页 *p=n ; *p = m ; 14.下面程序段的运行结果是 。 char *s=”abcde” ; s+=2 ; printf(“%s”,s); A)cde B)字符c C)字符c的地址 D)不确定 15.利用 fseek 函数可实现的操作是 。 A)改变文件的位置指针 B)文件的顺序读写 C)文件的随机读写 D)以上答案均正确 二、基础知识填空(每空二、基础知识填空(每空 2 分,共分,共 20 分)分) 1.在 C 语言中,格式化输入操作是由库函数 scanf()完成的,而格式化输出操作是由库函数 完成的。 2判断 x
7、为正浮点的关系表达式是 。 3.若有定义 #define N 2 #define Y(n) (N+1)*n) 则执行语句 z=2*(N+Y(5);后,z 的值为 。 4结构化程序有 、选择和循环三种基本结构。 5数学表达式baba +等价的 C 语言表达式是 6.函数调用语句:fun(a,b),(c,d,e)实参个数为 。 7. 设有数组定义: char array =“China“; 则 sizeof(array)为 8.若有定义语句:int a4=1,2,3,4,*p;p=则+(*p)的值 。 9.若有定义: struct num int a ; int b ; float f ; n =
8、 1,2,3.0 ; struct num *pn = 则表达式 pn-b,pn-a*(+pn-b)的值是 。表达式(*pn).a+pn-f 的值 是 。 三、程序阅读题(每题三、程序阅读题(每题 3 分,共分,共 24 分)分) 1以下程序运行时输出结果第一行是 ,第二行是 。 #include void swap (int *x, int *y); int main(void) int a=200, b=100; swap ( printf (“a=%d, b=%dn“, a,b); return 0; 第 4 页 /共 9 页 void swap (int *x, int *y) int
9、 temp; temp=*x, *x=*y, *y=temp; printf(“*x=%d,*y=%dn“,*x,*y); 2.下面程序运行的结果 #include int main ( ) int k=1,n=263 ; do k*= n%10 ; n/=10 ; while (n) ; printf(“%dn”,k); return 0; 3下面程序执行的结果是 #include int f(int ); int main() int z; z=f(5); printf(“%dn“,z); return 0; int f(int n) if(n=1|n=2) return 1; else
10、return f(n-1)+f(n-2); 4以下程序运行后的输出结果的第一行是 ,第二行是 。 #include int fun(int); int main() int i,a=5; for(i=0;i(表示回车),则下面程序的 运行结果是_。 #include int main() char s80,c=a; int i=0; scanf(“%s”,s); while(si!=0) if(si=c) si=si-32; else if(si=c-32) si=si+32; i+; puts(s); return 0; 6下面程序运行的结果是 #include void inv(int *
11、, int ); int main() int i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10); for(i=0;i struct person char name20; int count; leader3=“Li”,0,“Zhang”,0,”Wang“,0; int main ( ) int i,j; char leader_name20; for(i=1;inum != num ) prep = p; p = p-next; else break; if ( head = p ) 第 7 页 /共 9 页 head = p-next; else if ( p-
12、next != NULL) prep-next = p-next; else prep-next = NULL; if ( p = NULL ) printf(“Not exist!n“); else free(p); return head; 四、程序填空题(每空四、程序填空题(每空 2 分,共分,共 16 分)分) 1输出100200之间不能被3整除的数,填空使程序完整。 #include int main() int k; for(k=100; 1 ;k+) if(k%3=0) 2 ; printf(“ %d “,k); return 0; 2.下面程序按公式1005010 21111k
13、kkkkk=+求和并输出结果,请填空使程序完整。 #include int main ( ) 3 ; int k ; for (k=1 ; k 第 8 页 /共 9 页 int main() int a44=1,2,3,4, 2,2,5,6, 3,5,3,7, 8,6,7,4; int i, j, found=0; for(j=0; j double fun( int m ) double t = 1.0; 第 9 页 /共 9 页 int i; for( i = 2; i #include void fun(char *str) int main() FILE *wf; char str81; int n; printf(“输入一个字符串:“) ; gets(str); puts(str); fun(str); wf=fo