C程序的设计期末复习练习题及参考答案3

上传人:痛*** 文档编号:107802997 上传时间:2022-06-15 格式:DOC 页数:13 大小:64.50KB
返回 下载 相关 举报
C程序的设计期末复习练习题及参考答案3_第1页
第1页 / 共13页
C程序的设计期末复习练习题及参考答案3_第2页
第2页 / 共13页
C程序的设计期末复习练习题及参考答案3_第3页
第3页 / 共13页
点击查看更多>>
资源描述
. . . C程序设计期末复习练习题与参考答案(3)一、单项选择题1.若有定义int (*p)4,则标识符p是一个。A)指向整型变量的指针变量B)指向函数的指针变量C)指向有四个整型元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针2以下对字符串的定义中,错误的是:。A) char str7 = FORTRAN;B) char str = FORTRAN;C) char *str = FORTRAN;D) char str = F,O,R,T,R,A,N,0; 3针对下面程序段,下面哪些说法是正确的?#include void Swap(int *x, int *y);main() int a, b; a = 5;b = 9; Swap(&a, &b); printf(a=%d,b=%d,a,b);void Swap(int *x, int *y) int *pTemp; *pTemp = *x; *x = *y; *y = *pTemp; A) 程序运行结果为乱码;B) 程序运行后将导致程序崩溃;C) 程序编译时出错导致程序无法运行; D) 程序执行了危险的操作;4已知学生记录描述为:struct student int no;charname20;charsex;structint year;char month15;int day;birth;struct student s;设变量s中的生日是1984年11月11日,以下对生日的正确赋值方式是_A) s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11;B) s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11; C) s.birth.year = 1984; strcpy(s.birth.month, 11); s.birth.day = 11;D) s.birth.year = 1984; strcpy(s.birth.month, 11); s.birth.day = 11;5. 要使下面程序的输出1, 2, 34,则从键盘输入的数据格式应为。#include main() char a,b; int c; scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);A)1 2 34 B)1, 2, 34 C)1,2,34 D)12 346. 以下选项中为合法整型常量的是( )。A) -080 B) -80 C) -8e1.0 D) -80.0e7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为( )。A) 4 B) 16 C) 32 D) 528. 以下程序执行后的输出结果是( )。#include void func(int *a, int b) b0=*a+6; main() int a,b5; a=0; b0=3; func(&a,b); printf(%dn,b0); A)6 B)7 C)8 D)99. 设有定义 char grade = A; 则以下给出的程序运行结果或说确的是( )。switch(grade)case A:case B:case C:printf(= 60 pass!n);case D:printf(= 60 pass! B) 60 C) error! D) 以上结果都不正确10. 以下程序执行后的输出结果是( )。#include int main()int i = 1, j = 1, k = 2;if(j+ | k+ ) & i+ )printf(%d,%d,%dn, i, j, k);return 0;A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,311. 执行完循环语句 for(i = 1; i 10; i+); 后,以下关于变量i的值与循环体的执行次数的说确的是( )。A) i的值是9,循环体执行9次 B) i的值是9,循环体执行10次C) i的值是10,循环体执行9次 D) i的值是10,循环体执行10次12. 以下程序的运行结果是( )。#include int main()int m, n;for(m = 0, n = 10; m n; m+=3, n-);printf(%d,%dn,m,n);return 0; A) 6,7 B) 7,6C) 9,7 D) 7,913. 以下程序的运行结果是( )。#include int main()int i;int a33=1,2,3,4,5,6,7,8,9;for(i = 0; i 3; i+)printf(%d ,a2-ii);return 0;A) 1 5 9 B) 7 5 3 C) 3 5 7 D) 5 9 114. 以下可用于C语言用户标识符的一组是( )。A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof 15. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )。.A) a0 B) !a C) a=0 D) a!=016. 以下程序的输出结果是( )。 #includevoid main() int x=10,y=10; printf(%d %dn, x-, -y);A) 9 9 B) 10 9 C) 9 10 D) 10 1017. 若有定义:char *name = Follow me,BASIC,Great Wall,FORTRAN;,则name2的值是( )。A) 字符GB) 字符串Great WallC) 字符串Great Wall的首地址D) 不确定18. 有以下程序,程序执行后的输出结果是( )。#include void fun(char *p)char *q = p;while( *q != 0)(*q) +;q+;int main()char a = Program, *p;p = &a3;fun(p);printf(%sn,a);return 0;A) Prohsbn B) Prphsbn C) Progsbn D) Program19. 下面列出的C语言提供的合法的数据类型关键字是( )。A) DoubleB) shortC) integer D) Char20. 字符(char)型数据在微机存中的存储形式是( )。A) 反码 B) 补码 C) EBCDIC码 D) ASCII码21. 设 int a=12,则执行完语句a+=a-=a*a后,a的值是( )。A) 552 B) 264C) 144D) -26423. 能够完成如下函数计算的程序段是( )。 -1 x0A) y=1; B) if (x=0) if(x!=0) if(x0) y=1;if(x0) y=1; else y=0; else y=0; else y=-1;C) y=0; D) y=-1; if (x=0) if (x0) y=1; if (x0) y=1; else y=0; else y=-1;24. 有如下程序 #include void main( ) int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(a=%d,b=%dn,a,b); 该程序的输出结果是( )。A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=225. 下面程序的输出结果是( )。 #include void main( ) int i; for(i=1;i6;i+) if (i%2!=0) printf(#);continue; printf(*); printf(n); A) #*#*# B) # C) * D) *#*#*26. C语言中while 和do-while 循环的主要区别是( )。.A) do-while的循环体至少无条件执行一次B) while 的循环控制条件比do-while 的循环控制条件严格C) do-while 允许从外部转到循环体D) do-while 的循环体不能是复合语句27. 当对两个字符串进行比较时,应该使用的函数是( )。A) strcat B) strcmp C) strcpy D) strlen28. 以下程序的运行结果是( )。#include void main( ) int *p, a=1; p=&a; *p=10; printf(%dn, a); A) 1 B) 10 C) 不能确定 D) 1129. 设有定义 int a =1,5,7,9,11,13, *p=a+3; 则*(p-2) , *(a+4) 的值是( )。A)5 11 B)1 9 C)5 9 D)有错误30. 若i为整型变量,则以下循环的次数是( )。for(i=2;i=0;)printf(“%d”,i-); A) 无限次 B) 0次 C) 1次 D) 2次二、填空题1.C语言标识符由 _字母_、_数字_和_下划线_来构造。2 设有定义:FILE *fp;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写容。fp = fopen(readme.txt,“a”);3.若有说明和语句:int a=25,b=60;b=+a;则b的值是26 。4.若int x=5;while(x0)printf(“%d”,x-);的循环执行次数为5 。5.若有int a5,*p=a;则p+2表示第三个元素的地址。6.若有说明和语句:int a=5,b=6,y=6;b-=a;y=a+则b和y的值分别是1 、5 。7.已知整型变量a=3,b=4,c=5,写出逻辑表达式a|b+cc&b-c的值是1 。8在C语言中,变量的存储类别有四种,它们是:自动(auto)、寄存器(register)、静态(static) 、外部 (extern)。9如果一个变量在某个围是有效的,该围就称为变量的作用域。自动(auto)存储类别的局部变量,其作用域为:从定义的位置起,到函数体(或复合语句)完毕为止10设有定义int a,b;写出满足条件“a是3的倍数,或者b不是5的倍数”的逻辑表达式: a%3=0 | b%5!=0。三、程序运行结果分析题1main()int i,j,x =0;for(i=0;i2;i+)x+;for(j=0;j3;j+)if(j%2) continue;x+;x+;printf(x=%dn,x);程序运行结果是: x=62#include struct date int year; int month; int day;struct date func(struct date p) p.year = 2000; p.month = 5; p.day = 22; return p;main() struct date d; d.year = 1999; d.month = 4; d.day = 23; printf(%d/%d/%dn, d.year, d.month, d.day); d = func(d); printf(%d/%d/%dn, d.year, d.month, d.day);程序的运行结果是:1999/4/232000/5/223#include main() char a = Hello ; char *p = NULL; for (p=a; pa+5; p+) printf(%sn, p); 程序运行结果是:Helloellolloloo4#include int fun(int x, int y)return x y ? x : y;main() int a=2,b=5,c=8; printf(%dn, fun(fun(a+c,b), a-c);程序运行结果是:105#include void Func(void);main()int i;for (i=0; i5; i+)Func();void Func(void)static int a = 1;int b = 2, c;c = a + b;a+;b+;printf(%dn, c);程序运行结果是:345676当运行以下程序时,从键盘输入如下容并回车:ADescriptor ,则下面程序的运行结果是 v0=13,v1=4,v2=12 。#include int main()char c;int v0 = 1, v1= 0, v2 = 0;do switch(c = getchar()case a:case A:case e:case E:case i:case I:case o:case O:case u:case U: v1 += 1;default:v0 += 1; v2 += 1; while (c != n);printf(v0=%d,v1=%d,v2=%dn,v0,v1,v2);printf(n);return 0;7. 当运行以下程序时,运行结果是_。#include void fun(char *t, char *s)while( *t != 0) t+;while( ( *t + = *s + ) != 0 ) ;int main()char ss320=I ,dont ,know;int i;for(i = 2; i 0; i-)fun(ssi - 1, ssi);for( i = 0; i 3; i+)printf(%sn,ssi);return 0;I dont knowdont know know8. 当运行以下程序时,运行结果是_1,5,3,8_。#include int main()int a4 = 2,9,1,8,8,9,7,2,4,3,2,1,1,5,3,5, i, j, k, t;for(i = 0; i 4; i+)for(j = 0; j 3; j+)for(k = j + 1; k aki)t = aji;aji = aki; aki = t; for(i = 0; i 4; i+)printf(%d,aii );return 0;9. 有以下程序 #include #include typedef struct char name9; char sex; float score2; STU; void f(STU a) STU b=Zhao,m,85.0,90.0; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+) a.scorei=b.scorei; main() STU c=Qian,f,95.0,92.0; f(c);printf(%s,%c,%2.0f,%2.0fn,c.name,c.sex,c.score0,c.score1); 程序的运行结果是_ Qian,f,95,92_。四、程序填空题阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。1. 先按学号由小到大的顺序从键盘输入学生的学号和成绩,然后从键盘任意输入一个学生的学号,查找并打印具有该学号的学生的成绩。#include #define ARR_SIZE 40int BinSearch(long a, int n, long x);main()float score ARR_SIZE;int n, i, pos;long numARR_SIZE, x;printf(Please enter total number:);scanf(%d, &n);printf(Please enter the number and score:n);for (i=0; in; i+) scanf(%ld%f, &numi, &scorei);printf(Please enter the searching number:);scanf(%ld, &x);pos = BinSearch(num, n, x);if (pos != -1) printf(score = %4.0fn, scorepos);else printf(Not found!n);int BinSearch(long a, int n, long x)int low, high, mid;low = 0;high = n - 1;while (low amid)low = mid + 1;else if (x amid)high = mid - 1; elsereturn (mid); return(-1);2. 输入一行字符,统计其中的英文字符、数字字符、空格与其它字符的个数。#include #include #define ARR_SIZE 80main()char strARR_SIZE;int len, i, letter=0, digit=0, space=0, others=0; gets(str); for (i=0; stri!=0; i+) if (stri = a & stri = A & stri = 0 & stri = 9) digit +; else if (stri = ) space +; else others +; printf(English character: %dn, letter); printf(digit character: %dn, digit); printf(space: %dn, space); printf(other character: %dn, others);3以下程序为求出并打印1000以所有水仙花数,请补齐代码。所谓水仙花数是指一个3位正整数,其各位数字的立方和等于该正整数。例如407 = 4* 4 * 4+0*0*0+7*7*7,故407是一个水仙花数.#include int main()int x, y, z, a100, m, i = 0, j = 0;printf(The special numbers are (in the arrange of 1000) . n);for( m=100;m1000_; m+)x = m / 100;y =m/10%10;z = m %10;if(x * 100 + y * 10 + z = x * x * x + y * y * y + z * z * z)ai = m;i+;for(j = 0; j i; j+)printf(%6d,aj);printf(%n);return 0;13 / 13
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!