程序设计基础-期末考试答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
puts(c); getch(); //屏幕捕捉函数。 }
for(i=0;i<n;i++) { if(b[i]>max) max=b[i]; } return max; } */ A. max = fun() B. max = fun(a,10) C. max = fun(a[i], 10) D. max = fun(a[i][], 10) 第28题(3分) 已知a是已定义好的M行N列的二维数组,下列程序段是对a数组按中心 横轴进行数组元素的互换,如:a为3行3列 经过以下程序运行之后 变为 123 456 789 789 456 123
B. 9 8 7 C. 10 9 8 D. 9 8 7 6 第24题(3分) 下列程序段输出的结果为?( ) char str[] = { “1a2b3c” }; int i ; for( i=0;str[i]! = '\0';i++) { if (str[i]>='0' && str[i]<='9' ) printf( "%c",str[i] ); } A. 1a2 B. b3c C. abc D. 123 第25题(3分) 阅读下列程序,如果输入的m和n是:40和24,请问程序输出什么?( ) int m,n,i,k,min,t=0; scanf("%d,%d", &m,&n); if(m<n) min=m; else min=n; for(i=1; i<=min; i++) { if(m%i==0 && n%i==0) { k=i; t++; } } printf("k=%d,t=%d",k,t); A. k=24,t=2 B. k=8,t=1 C. k=8,t=3
D. k=24,t=4 第26题(3分) 请求出1-1000之内,能被7整除的非偶数整数,并且每输出10个就换一 行。请问填空处正确的是( ) int i,k; for(i=1;i<1001;i++) { if( ____填空____ ) { printf("%d\t",i); if(k%10==0) printf("\n"); } } A. i%7==0 B. i%7==0 || i%2!=0 C. i%7==0 && i%2!=0 D. i%7==0 && i%2==0 第27题(3分) 已知fun函数的功能是求一维整数数组的最大值,main函数将调用fun函 数来求a数组中各行的最大值,请问填空处应该填写以下哪个选项?( ) void main() { int a[4][10] = {{1,2,3,8,7,4,1},{2,9,3,1,0,3},{4,1,10,14,6}, {20,14,1,8,45,6,7,8}}; int i,max; for(i=0; i<4; i++) { (____填空____); printf(" max=%d\n", max); } } /* int fun(int b[],int n) { int i,max=b[0];
C. a[M-j-1][i] D. a[j][M-i-1] 编程题: 1、#include <stdio.h> //请在main函数中输入一个100-200之内的整数给fun函数, //fun函数的功能是:求出1到该整数之间,所有能被7整除,但是不能2 整除的整数的个数。 //如:输入150, 输出结果为:k = 11。(有11个这样的数) //注意:只能在fun函数的{ }内部完成程序编写,不能改动main函数。 //该题15分。 int fun( int n) { } void main() { int n,k; scanf("%d",&n); k = fun(n); printf("k = %d\n", k); } 2. #include <stdio.h> //fun函数的功能是删除一个字符串的后置*。 //如:输入字符串:***abc**1d*345****, 输出结果为: ***abc**1d*345 //注意:只能在fun函数的{ }内部完成程序编写,不能改动main函数。 //该题21分。 void fun(char c[], int n) { } void main() { int i,n=0;
下列程序的填空1和填空2处是相同的,请问该填什么?( ) for(i=0; i<N; i++) { for(j=0; j<M/2; j++) { t=a[j][i]; a[j][i] = (____填空1____ ); (____填空2____ ) = t; } } A. a[N-j-1][i] B. a[j][N-i-1]
在C语言中对变量定义描述正确的是( ) A. 可以不定义即可使用 B. 在函数的开始先定义后使用 C. 随时定义随时用 D. 定义可以不用指明变量类型 第7题(2分) 下列哪个运算符的优先级高于算术运算符? A. ! B. || C. += D. != 第8题(2分) 下列哪条语句能够实现:输出double类型的变量d,输出2位小数,共占 10列宽度,如果宽度不够在左边补空格。( ) A. printf("%f",d); B. printf("%10lf",d); C. printf("%10.2lf",d); D. printf("%-10.2lf",d); 第9题(2分) 对于C程序的函数,以下哪条叙述是正确的?( ) A. 函数定义不能嵌套,但函数调用可以嵌套 B. 函数的定义可以嵌套,但函数调用不能嵌套 C. 函数定义与调用均不能嵌套 D. 函数定义与调用均可以嵌套 第10题(2分) 一个函数返回值的类型是由( )决定的。 A. return语句中表达式的类型 B. 在调用函数时临时 C. 调用该函数的主调函数的类型 D. 定义函数时指定函数类型 第11题(2分) 在一个源程序文件中定义的全局变量的有效范围为( ) A. 百度文库源程序文件的全部范围 B. 从定义变量的位置开始到源程序文件结束 C. 一个C程序的所有源程序文件 D. 函数内全部范围
char c[50]; scanf("%s",c); n = strlen(c); fun(c,n); puts(c); } 答案: #include "stdio.h" /* void fun(char c[], int n) { int i; for(i=n-1;i>=0;i--) { if(c[i]=='*') {c[i]='\0';} else break; } } */ void fun(char c[], int n) { int i=n-1; while(c[i]=='*') { c[i]='\0'; i--; } } void main() { int i,n=0; char c[50]; scanf("%s",c); n = strlen(c); fun(c,n);
2013-2014-1期末考试 科目:《程序设计基础》 日期:2014年1月4日 计科系 班级: 学号 姓名
第1题(2分) C语言程序从main()函数开始执行,所以这个函数要写在( A. 程序文件的开始 B. 程序文件的任何位置 C. 程序文件的最后 D. 它所调用的函数的前面 第2题(2分) 不正确的标识符是( ) A. _a2 B. a2_i C. Int D. 2ai 第3题(2分) 以下对字符型变量c进行赋值的错误语句是?( ) A. char c1 = ‘a’; B. char c2 = 97; C. char c3 = ‘\100’; D. char c3 = "k"; 第4题(2分) 若t为int型,逗号表达式: t=1,t+5,t++ 的值是( ) A. 2 B. 1 C. 7 D. 6 第5题(2分) x=2,y = -3,z=3,则表达式 x||y+z&&y-z 的值为( ) A. 0 B. -1 C. 1 D. 2 第6题(2分) )
第12题(2分) t=若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的 值为 ( )。 A. 0 B. 4 C. 2 D. 6 第13题(2分) 下列描述正确的是( ) A. if语句中条件表达式只能是关系表达式或逻辑表达式 B. break语句只能用于循环语句中 C. if语句中条件表达式的括号不能省略 D. if语句中else应与离它最近的if语句匹配 第14题(2分) 若w=1,x=2,y=3,z=4,则条件表达式w>x? w:y<z?y:z的值是( ) A. 4 B. 2 C. 3 D. 1 第15题(2分) C语言中不能放入switch()的括号中的是?( ) A. a+b (a和b均为整数类型) B. c+5 (c为字符类型) C. d (d为double类型) D. 25 第16题(2分) 给出以下定义: char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为 ( ) A. 数组X和数组Y等价 B. 数组x和数组Y的长度相同 C. 数组X的长度大于数组Y的长度 D. 数组X的长度小于数组Y的长度 第17题(2分) 以下程序段( )
x=-1; do { x=x*x; }while(!x); A. 是死循环 B. 循环执行一次 C. 循环执行二次 D. 有语法错误 第18题(2分) 若二维数组a有m列,则在a[i][j]前的元素个数为( ) A. j*m+j B. i*m+j-1 C. i*m+j+1 D. i*m+j 第19题(2分) 以下对于C语言数组描述错误的是?( ) A. 数组一旦定义,就不能改变其容量 B. 数组一旦定义,就不能改变其首地址 C. 不管是一维数组还是二维数组,其元素在内存中都是连续存放 的 D. 我们可以在程序运行过程中根据实际需要增加数组的容量 第20题(2分) C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为( ) A. 地址传递 B. 单向值传递 C. 由实参传给形参,再由形参传回给实参 D. 由用户指定传递方式 第21题(3分) 下列程序段运行后i的值是( ) int i=9; switch(i+1) { case 10 : i++;
case 11 : ++i; break; case 12 : ++i; break; default : i=i+1; } A. 11 B. 12 C. 13 D. 14 第22题(3分) 阅读程序,输出结果为( ) # include <stdio.h> void func ( int b[ ] ) { int j; for( j=0 ; j<4 ; j++ ) { b[j] = b[j]-j;} } main() { int a[ ] = { 5,6,7,8 } , i ; func(a) ; for(i=0 ;i<4;i++ ) printf (“%d”,a[i]); } A. 5678 B. 0246 C. 5555 D. 4444 第23题(3分) 下列程序段中最后的输出结果为( ) int n = 10 ; while ( n > 7 ) { n--; printf(“%d ”, n ); } A. 8 7 6