程序设计模拟及答案_第1页
程序设计模拟及答案_第2页
程序设计模拟及答案_第3页
程序设计模拟及答案_第4页
程序设计模拟及答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上程序设计模拟题1 一 单项选择题1.C程序的基本单位是_C_。A 子程序 B 过程 C 函数 D 源程序文件 2.若有以下说明,则_B_不是对strcpy库函数的正确的调用 char str1=”copy”,str210,str3=”hijklmn”,*str4,*str5=”abcd”; A strcpy(str2,str1); B strcpy(str3,str1); C strcpy(str4,str1);D strcpy(str5,str1); 3.C语言中,要求运算量必须是整形数据的运算符是_A_。 A % B / C * D ! 4.选出C语言的合法的变量

2、名_D_。 A 33a B a#b C ab,c D ddt3 5.以下说法正确的是: AA. 预处理命令行都必须以#号开始B. 预处理命令只能位于源程序的首部C. 对预处理命令的处理是在执行过程中进行的D. 每个C程序必须使用预处理命令#include <stdio.h> 6.对于如下数据定义和scanf函数调用: int i1, i2; char c1, c2; scanf("%d%c%d%c", &i1, &c1, &i2, &c2); 若使i1、c1、i2、c2的值分别为10、'C'、20、'D&#

3、39;, 正确的数据输入方式是_A_ A 10C20D<回车> B 10 C 20D<回车> C 10 C 20 D<回车> D 10 C20 D<回车> 7.当定义一个结构体变量时系统分配给它的内存是:_A_ A各成员所需内存量的总和 B 成员中占内存量最大者所需的容量 C 结构中第一个成员所需内存量 D 结构中最后一个成员所需内存量8.设有以下语句,则c的值用二进制表示为: _B_ char a=3,b=6,c;c=(ab)<<2; A B C D 二 填空题1. 设int a=10,则执行完语句a+=a-=a*a后,a 的值是_

4、-180_。2.char *str; str="string" 这种字符串赋值方式正确吗?_1_(正确填1,不正确填0) 3.表达式3&4的值为_0_。 4.C语言提供的构造类型的数据有: 数组,结构体,_共用体_ 。 5.表达式0?(0?3:2):(10?1:0)的值为_1_。 6.C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为_int_类型。 7.定义int j=1;执行while(j+<4)后j的值为_4_。三 程序填空题 1.输出由*组成的倒三角图案,图案的行数n从键盘输入。 如果行数n为6,则图案如图所示: * * * * * * * *

5、 * * * * * * * * * * * * * #include <stdio.h> main( ) int i, j, n; printf("Please input number of rows:"); scanf("%d", &n); for( i=_0_; i <n; i +) for( j=0; j<_n_; j+ ) putchar( j< i? :_*_); putchar( 'n' ); 2. 用起泡法将10个数组元素从小到大排序。main ( ) int i,j,t; stat

6、ic int a10=5,7,4,2,3,6,1,0,9,8; for(j=0;j<9;j+) for(i=0;i_<_9-j;i+) if(ai>a_i+1_) t=ai;ai=ai+1;ai+1= _t_; for(i=0;i<10;i+) printf(“%2d”,ai);四 改错题 1.本程序计算N×N二维整型数组全部元素的平均值(输出时保留一位小数)。 行号 程序 01 #include <stdio.h> 02 #define N 4 03 float fun( int arrN ); 04 main( ) 05 06 static i

7、nt aaN= 07 1, 2, 3, 4 , 4, 5, 6, 7 , 08 10,11,12,13 , 20,21,22,23 ; 09 float avr; 10 avr=fun(&aa); 11 printf("avr=%.1f", avr); 12 13 float fun( int arrN ) 14 15 int i, j; 16 int s; 17 float av; 18 for( i=1; i<N; i+ ) 19 for( j=0; j<=N-1; j+ ) 20 s += arrij; 21 av = s/(N*N); 22 re

8、turn av; 23 可能出错的程序语句的行号为:03、06、10、13、16、18、19、20,错误依次为: 行号_10_应改为_avr=fun(aa);_。 行号_16_应改为_float s=0;_。 行号_18_应改为_for(i=0;i<N;i+)_。 2.从键盘输入一行字符,然后删除字符串中的全部空格。 例如,如果输入"abc def gh", 则输出为"abcdefgh"。 行号 程序 01 #include <stdio.h> 02 main( ) 03 04 char s81; 05 char *p1, p2; 06

9、 printf("Please enter a string:"); 07 scanf(“%s”,s); 08 p1=p2=s; 09 while( *p1!= '0' ) 10 11 if(*p1!= ) 12 13 *p2=*p1; 14 p2+; 15 16 p2+;17 18 *p2 = '0' 19 printf("String without leading blank:%sn", s); 20 可能出错的程序语句的行号为:05、07、08、09、11、13、16,错误依次为: 行号_05_应改为_char *

10、p1,*p2;_。 行号_07_应改为_gets(s);_。 行号_16_应改为_p1+;_。 五 阅读理解 1. 下面程序的输出结果为:_12,6_。 main( ) int x=1,i=1; for(;x<50;i+) if(x>10) break; if(x%2!=0) x+=3; continue; x-=-1; printf(“%d,%dn”,x,i); 六 程序设计题 1. 统计所有的三位整数中有多少个数的各位数字之积等于各位数字之和,并输出这些整数。1 main( )int n,a,b,c,sum=0;for(n=100;n<1000;n+) a=n/100;

11、b=(n-a*100)/10; /* 该语句换成b=n/10-a*10;亦可*/ c=n%10;if(a*b*c=a+b+c)printf(“The number is %dn”,n);sum+; printf(“The total number is %d”,sum);2. .编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。见C程序设计题解与上机指导8.9解:int letter,digit,space,others; /*定义全局变量*/main() int count (char str ); /*函数声明*/ c

12、har text80; gets(text);letter=0;digit=0;space=0;others=0;count(text);printf(“letter:%d,digit:%d,space:%d,others:%dn”,letter,digit,space,others);int count (char str )int i;for(i=0;stri!=0;i+)if(stri>=a&& stri<=z|( stri>=A stri<=Z)letter+;else if(stri>=0&& stri<=9)dig

13、it+;else if(stri= )space+;else others+;3输入3个整数,按由小到大的顺序输出。(注:要求用指针方法处理)。见C程序设计题解与上机指导10.1解:main()int n1,n2,n3;int *p1, *p2, *p3; scanf(“%d,%d,%d”,&n1,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if(n1>n2) swap(p1,p2);if(n1>n3) swap(p1,p3);if(n2>n3) swap(p2,p3);printf(“The order is:

14、%d,%d,%dn”,n1,n2,n3);swap(int *p1,int *p2)int p;p=*p1; *p1=*p2; *p2=p;程序设计模拟题2 一 单项选择题 1.选出C语言的合法常量_D_。 A 0fd B 0xfdaL C e8 D .e-4 2.选出合法的变量名_C_。 A auto B 2_ends C TURBO_C D .month 3.选出合法的字符串常量_D_。 A String B ”Its a boy” C ”C:x.txt” D ”He said,Sorry!” 4. 若a为一维整型数组的数组名,则对指针变量p的正确说明和初始化为 B 。 A. int *p

15、=a0; B.int *p=a0;C.int *p=*a; D.int *p=a; 5.对两个静态数组A和B进行如下初始化. static char A=”ABCDEF”; static char B=A, B, C, D, E, F; 则下列叙述正确的是_D_。 A. A和B完全相同 B.A和B只是长度相同 C.A和B不相同,A是指针数组 D.A数组长度比B数组长 6. 以下说法错误的是 B A. 宏替换只是字符替换 B. 宏名必须用大写字 C. 宏替换是在预处理时进行的 D. 程序中引用带参数的宏时,对参数的数据类型没有限制 7. 对于如下数据定义float x,y; 为了使x和y分别为1

16、.23和4.56,输入如下内容: x=1.23,y=4.56<回车> 则正确的scanf调用是 D A. scanf(ff,x,y); B. scanf(f,f,x,y);C. scanf(x=fy=f,x,y); D. scanf(x=f,y=f,x,y); 8.以下共用体类型和变量的定义,正确的是_C_。 Aunion student B. union int number, int number, char name20, char name20, s; ;s; Cunion student D. union student int number; int number; c

17、har name20; char name20; s; ;s;二 填空题1. 定义int x=10,y,z;执行y=z=x;x=y=z;后,变量x的值为_1_。 2.char str20; str="string" 这种字符串赋值方式正确吗?_0_(正确填1,不正确填0)。 3.设x为整型量,则表达式xx的值为_0_。 4. 若有以下说明和语句 int a=1,2,3,4,5;则a+是对数组元素地址的正确表示吗_0_(正确填1,不正确填0)。 5.表达式(1/2)*10.0的值为_0_。 6.将一维数组x的第i个元素的地址赋给指针变量p的语句是_p=x+i-1_。 7.定义

18、int i=1;执行while(i+<5)后i的值为_6_。 8.设a=7,b=6,c=5;写出表达式(a+b)>(c*c)&&b的值是_0_。三 程序填空题 1.输出由数字组成的三角图案,图案的行数n从键盘输入。 如果行数n为6,则图案如图所示: AAAAAA BBBBB CCCC DDD EE F #include <stdio.h> main( ) int i, j, n; printf("Please input number of rows:"); scanf("%d", &n); for( i=

19、0; i_(1) <n_; i + ) for( j=_(2) n_; j>i; j- ) putchar( A+_(3) i_ ); putchar( n ); 2. 数组a中存放N个由小到大排列的有序整数。从键盘输入一整数x,使用二分法在数组中查找是否有此整数。二分查找法的思路是:将待查数据与全部数组元素中位于中间下标位置的元素相比较,如果待查数据大于中间元素,则缩小查找范围,在中点之后的数组元素中继续查找;否则在在中点之前继续查找。 #include <stdio.h> #define N 10 main() int x, mid, lo, hi; static

20、int aN= 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 ; scanf( "%d", &x ); lo=_(1)_0_; hi=N-1; while(lo<=hi) mid=(lo+hi)/2; if( x= =amid ) _(2)_break_; else if( x>amid ) lo=mid+1; else hi=_(3)_mid-1_; if(lo<=hi) printf("Found %d at %dn", x, mid); else printf("%d not foundn

21、", x);四 改错题1.本程序计算N×N二维整型数组中元素值为负数的元素个数占全部元素个数的百分比(输出时保留一位小数)。 行号 程序 01 #include <stdio.h> 02 #define N 4 03 float fun( int arrN ); 04 main( ) 05 06 static int aaN= 07 1, 2, 3, 4 , 4, 5, 6, 7 , 08 10,11,12,13 , 20,21,22,23 ; 09 float p; 10 p=fun(&aa); 11 printf("p=%.1f%"

22、;, p*100); 12 13 void fun( int arrN ) 14 15 int i, j; 16 int s; 17 for( i=0; i<N; i+ ) 18 for( j=0; j<N; j+ ) 19 if(arrij<0) 20 s+; 21 return (float)s/(N*N); 22 可能出错的程序语句的行号为:03、06、10、11、13、16、17、19、21,错误依次为: 行号_10_应改为_p=fun(aa);_。 行号_13_应改为_float fun( int arrN)_。 行号_16_应改为_int s=0;_。 2.从键盘

23、输入一行字符,查找字符串中是否有大写字母A。 若有则输出"Found",若无则输出"Not Found"。 行号 程序 01 #include <stdio.h> 02 main( ) 03 04 char a81,*p=a;05 char message10;06 message="Not Found" 07 printf("Please enter a string:"); 08 gets(&a); 09 while(*p) 10 11 if(p=A) 12 13 message="

24、;Found" 14 break; 15 16 p+;17 18 puts(message); 19 可能出错的程序语句的行号为:05、06、08、09、11、14、18,错误依次为: 行号_05_应改为_char *message;_。 行号_08_应改为_gets(a);_。 行号_11_应改为_if(*p=A)_。 五 阅读理解1.下面程序的输出结果为:_7,8,4,4,5_。int i =2;main ( ) int i =5; sub1();sub1(); sub2();sub2(); printf(”%d”, i);sub1( ) static int i =6; i +

25、; printf(”%d,”, i);sub2( ) int i =3; i +; printf(”%d,”, i); 2. 下面程序的输出结果为:_2800_。 main( ) static int x =10,7,5,8; int s, i,*p; s=1; p=x; for(i=0;i<4;i+) s*=*(p+i); printf("%dn",s); 六 程序设计 1.试编写一函数,该函数将字符ch打印row行col列。(8分)、main( )void ptr();char ch;int row,col;scanf(“%d%c%d”,&row,&ch,&col);ptr(ch,row,col);void ptr(char ch, int row, int col) int i ,j;for(i=1;i<=row;i+)for(j=1;j<=col;j+) printf(“%c”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论