c语言程序设计试题3
C语言程序设计习题集3

{ num++ ; break ; }
return (num);
}
4下面函数的功能就是用递归法将一个整数存放到一个字符数组中,存放时按逆序存放,如483存放成“384”,请填空使程序完整。
void convert(char *a, int n)
{ int i;
A*pxBaCpxD&a
9若指针px为空指针,则_B__。。
A px指向不定B px的值为零C px的目标为零D px的地址为零
10对下语句int *px[10];,下面正确的说法就是_B__。
A px就是一个指针,指向一个数组,数组的元素就是整数型。
B px就是一个数组,其数组的每一个元素就是指向整数的指针。
A语句有错误B z值为68 Cz值为60 D z值为180
4以下程序运行后的输出结果就是_A__。
#define F(X,Y)(X)*(Y)
main()
{int a=3,b=4;
printf("%d\n",F(a++,b++));
}
A 12B15C16D 20
5以下程序运行后的输出结果就是_C__。
{int a[5]={2,4,6,8,10}, *p;
p=a; p++;
printf("%d", *p);
}
4以下程序的输出结果就是__55__。
#defineM5
#defineNM+M
main()
{int k;
k=N*N*5; printf("%d\n",k);
C语言程序设计单元测试题三【精品-doc】

C语言程序设计_单元测试题三本单元包含“数组、函数”的内容。
一、选择题1.以下为一维整型数组a的正确说明是_________.A)int a(10); B)int n=10,a[n];C)int n; D)#define SIZE 10;scanf("%d",&n); int a[SIZE];int a[n];2.以下对二维数组a的正确说明是________.A)int a[3][]; B)float a(3,4);C)double a[1][4] D)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。
)A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+14.若二维数组a有m列,则在a[i][j]前的元素个数为________.A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+15.25.若有以下程序段:int a[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}... ...则该程序段的功能是_________.A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.A)gets(a,B); B)scanf("%s%s",a,B);C)scanf("%s%s",&a,&B); D)gets("a"),gets("b");7.下面程序段的运行结果是_________.char a[7]="abcdef";</P< p>char b[4]="ABC";strcpy(a,B);printf("%c",a[5]);A)空格B)\0 C)e D)f8.判断字符串s1是否大于字符串s2,应当使用_______.A)if(s1>s2) B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。
c语言程序设计练习3

在一个C程序中(B)。
A、main函数必须出现在固定位置B、main函数可以在任何地方出现C、main函数必须出现在所有函数之前D、main函数必须出现在所有函数之后若有int a[][]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为(C)。
A、&a[0][1],3B、非法,2C、&a[1][0],2D、a[0][0],4fseek函数的正确调用形式是(D)。
A、fseek(起始点,位移量,文件类型指针)B、fseek(位移量,起始点,fp)C、fseek(文件类型指针,起始点,位移量)D、fseek(fp,位移量,起始点)C语言程序中,当调用函数时(B)。
A、实参和虚参可以共用存储单元B、实参和虚参各占一个独立的存储单元C、计算机系统自动确定是否共用存储单元D、可以由用户指定是否共用存储单元以下标识符中,不能作为合法的C用户定义标识符的是(C)。
A、toB、answerC、defineD、_ifchar *s1="hello",*s2;s2=s1;则(D)。
A、s2指向不确定的内存单元B、s1不能再指向其它单元C、不能访问"hello"D、puts(s1);与puts(s2);结果相同有如下程序main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是 BA、a=1,b=1B、a=2,b=1C、a=1,b=0D、a=2,b=2下列正确的标识符是 DA、%yB、a+bC、6aD、_do若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是(B)。
A、"ab"B、"wb+"C、"ab++"D、"rb+"int a[10];合法的数组元素的最小下标值为(B)。
《C语言程序设计》试题3及答案

三一.单项选择题?1.设int x=1,y=1;表达式(!x++ || y--)的值是_________??? A.0???? B. 1?????? C. 2???? D.-12.main( )? {? int n;???? ( n=6*4,n+6),n*2;???? printf(“n=%d\n”,n);? }?? 此程序的输出结果是______________.?? A.30??? B.? 24???? C.? 60????? D.? 483.若有如下定义,则__________是对数组元素的正确的引用。
?? int? a[10] , *p ;?? p=a ;?? p=a ;?? p=a ;?? p=a ;?? A.? *&a[10]???? B.? a[11]????? C.? *(p+10)????? D. *p4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________ ?? A.? 0???? B.? 4??? C.? - 4???? D.? 2???? 5.以下不能正确定义二维数组的语句是___________??? A . int a[2][2]={{1},{2}};???? B. int a[][2]={1,2,3,4};?? ?C. int a[2][2]={{1},2,3};????? D. int a[2][]={{1,2},{3,4}}; 6.程序段??? ??????的功能是将变量 u 、s中的最大值赋给变量t 。
??????? A.? if(u>s) t=u;t=s;?????? B. ?t=u;?? if(t ) ?t=s;???? ?C.? if(u>s) t=s;else t=u;? ??D . ?t=s; if(u ) ?t=u;7.下列程序段的输出结果是???? ??????。
void main(){?? int k;for (k=1;k<5;k++〉{ ?if(k%2!=0)??printf("#");else ??printf(“*”) ;? } }A. #*#*????? B . *#*#??? C.? ##?????? D. 以上都不对8.设变量定义为 int a[3]={1,4,7},*p=&a[2], 则*p的值是? (35)??? 。
国开《C语言程序设计》(形考任务三)试题及答案

一、选择题(共30分,每小题2分)试题1在下面的函数声明语句中,存在着语法错误的是()。
选择一项:a. AA(int a, int b)b. AA(int, int)“c.AAfint a; int b)d.AA(int a, int)试题2在下面的保留字中,不能作为函数的返回值类型的是()。
选择一项:a. void° b.int'* c.enumd.long试题3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为()<•选择一项:r a.lr b.2& c.4r d.8试题4假定a为一个数组名,在下面的表达式中,存在语法错误的是()o选择一项:'aa[i]b. *a+ +}return s;}计算出l+x+x2+...+x n的值并返回。
试题37int SG(int x) ( //x为大于等于2的整数int i=2;while(i*i<=x) (if(x%i ==O) break;i++;)if(i*i<=x) return 0; else return 1;}判断x是否为一个质数(素数),若是则返回1,否则返回0。
试题38int WB(int a[]z int n, int x) (for(int i=0;i<n;i + +)if(a[i] ==x) return 1;return 0;)从数组a[n]中顺序查找值为x的元素,若查找成功则返回1,否则返回0。
试题39int fun(int m, int n) (int c=0;static int b=2;if(m<b || n<b) return m*n;else if(m%b==0 && n%b==0) {c=b; return c*fun(m/b,n/b);}else (b++; return fun(m,n);})一个递归函数过程,求出两个自然数m和n的最小公倍数。
C语言程序设计模拟试题3(附答案)

《C语言程序设计》模拟试卷三一、填空题。
(每空2分,共16分)1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。
2.一个C语言文件就是由若干个组成。
3.设有以下变量定义,并已赋确定得值char w; int x; float y; double z;则表达式:w*x+z-y所求得得数据类型为。
4.若x为int类型,请以最简单得形式写出与逻辑表达式!x等价得C语言关系表达式。
5.若有如下图所示五个连续得int类型得存储单元并赋值如下图,a[0]得地址小于a[4]得地址。
p与s就是基类型为int得指针变量。
请对以下问题进行填空。
a[0] a[1] a[2] a[3] a[4]p,给s赋值,使s指向最后一个存储单元a[4]得语句就是。
(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p得值就是。
二、单项选择题。
(每题2分,共40分)1.设有 int x=11; 则表达式 (x++ * 1/3) 得值就是()。
A) 3 B) 4 C) 11 D) 122.下列程序得输出结果就是()。
A) 3 B) 3、2 C) 0 D) 3、07main(){double d=3、2; int x,y;x=1、2; y=(x+3、8)/5、0;printf(“%d \n”, d*y);}3.下列程序执行后得输出结果就是(小数点后只写一位)()。
A) 6 6 6、0 6、0 B) 6 6 6、7 6、7C) 6 6 6、0 6、7 D) 6 6 6、7 6、0main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);scanf("%d",&d);}4.下列变量定义中合法得就是()。
A) short _a=1-、le-1; B) double b=1+5e2、5;C) long do=0xfdaL; D) float 2_and=1-e-3;5.设 int x=1, y=1; 表达式(!x||y--)得值就是()。
c语言程序设计试题(3).

c语言程序设计试题(3)一、填空题(10分)1设X为int型变量,请写出描述“ X是偶数”的表达式是:___________________________2、C语言中的基本数据类型分为 _____________ 型, __________ 型和字符型.3、_______________________________________________________________ 在数组intscore[10]={1,2,3,4,5,6}中,元素定义的个数有 _________________________ 个,其中score[8]的值为_____________________ 。
4、continue 语句是用来结束 _________________________________ 循环的。
5、循环语句:for(i= - 1;i<3;i++)printf( “!”);的循环次数是:_____________ 。
6、程序中经常要使用常量3.14,我们用符号run来表示,其定义格式为________________________________ 。
7、 C语言提供的三种逻辑运算符是______________ 、_______________ 和!;二、单选(30分)1、________________________ 以下数组定义正确的是A、int a [oxCF]; B. char 8th[10]; C. char ch [-100]; D. float f (10);2、四种运算中,优先级最高的运算符是( )A、&&B、>=C、==D、+ +3、设有程序段:int x=8;while (x=0)x=x-1 ;则下列描述正确的是_______A、while循环将执行10次B、while循环将执行无限次C、while循环将一次也不执行D、while循环将执行1次0.4、已知scanf( “ a=%d,b=%d,c=%c”,&a,&b,&c);则正确的输入形式是______________A) a=12 b=24 c=36 B) 12,24,36 C) a=12,b=24,c=36 D) 12 24 365、_____________________________ 程序片段执行后输出结果是int x=100, y=200;printf ("% d", (x, y));A 、100 B、200 C、100,200 D、编译出错6、不是C语A、指整C无符单7、设有:int行! (x=a)&&(y=b)&&0表达式的值为 __________A 1 B、0 C 3 D、48、_________________________________________________________________________________设有语句int a=3 ; 则执行了语句a+ = a - = a * a 后,变量a的值是—____________________________A 3B 0C 9D —129. 有如下的程序段,其输出正确的____________ 。
c语言程序设计试题及答案

c语言程序设计试题及答案C语言程序设计试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-2答案:C2. 以下哪个语句不是C语言中的输入语句?A. scanf("%d", &x);B. printf("%d", x);C. gets("string");D. getchar();答案:B3. C语言中,以下哪个不是标准库函数?A. printf()B. malloc()C. strcpy()D. main()答案:D4. 以下哪个选项是C语言中正确的数组声明?A. int array[];B. int [10] array;C. int array[10];D. int [10] = array;答案:C5. 以下哪个是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello World"答案:C6. C语言中,以下哪个是正确的函数声明?A. int function();B. void myFunction(int x, int y);C. int myFunction(int x, int y) {}D. int myFunction(int x, int y) { return x + y; }答案:B7. 在C语言中,以下哪个是正确的条件语句?A. if (x = 5)B. if (x == 5)C. if (x = 5) { x++; }D. if (x == 5) { x++; }答案:D8. 在C语言中,以下哪个是正确的循环语句?A. for (int i = 0; i <= 10; i++) {}B. for (int i = 0; i < 10; i--) {}C. while (x != 0) { x--; }D. do { x++; } while (x != 0);答案:D9. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. *int ptr;C. int ptr*;D. int * ptr;答案:A10. C语言中,以下哪个不是运算符?A. +B. -C. :D. *答案:C二、简答题(每题5分,共30分)1. 请简述C语言中数组和指针的区别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言试题-3一、选择题(评分标准20 分,每小题2分)1. 以下选项中可作为C语言合法常量的是________。
(A) -80. ( B) -080 (C) -8e1.0 (D) -80.0e2. 以下叙述中正确的是________。
(A) 用C程序实现的算法必须要有输入和输出操作(B) 用C程序实现的算法可以没有输出但必须要输入(C) 用C程序实现的算法可以没有输入但必须要有输出(D) 用C程序实现的算法可以既没有输入也没有输出3. 已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是________。
(A) 数组a和b的长度相同(B) a数组长度小于b数组长度(C) a数组长度大于b数组长度(D) 上述说法都不对4. 以下叙述中错误的是________。
(A) 数组名代表的是数组所占存储区的首地址,其值不可改变。
(B) 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息。
(C) 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
(D) 可以通过赋初值的方式确定数组元素的个数。
5. 以下叙述中正确的是________。
(A) 预处理命令行必须位于源文件的开头(B) 在源文件的一行上可以有多条预处理命令(C) 宏名必须用大写字母表示(D) 宏替换不占用程序的运行时间6. 表达式strlen(”hello”) 的值是________。
(A)4 (B)5 (C)6 (D)77. 设变量定义为“int a, b;”,执行语句scanf(“a=%d, b=%d”,&a, &b);时,输入________,则a和b的值都是10。
(A)10 10 (B)10, 10 (C)a=10 b=10 (D)a=10, b=108. 以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是_______。
(A) feof(fp) (B) ftell(fp) (C) fgetc(fp) (D) rewind(fp)9. 以下语句或语句组中,能正确进行字符串赋值的是________。
(A) char *sp="right!"; (B) char s[10];s="right!";(C) char s[10];*s="right!"; (D) char *sp;*sp="right!";10. 设变量定义为“int a[4];”,则表达式________不符合C语言语法。
(A)*a (B)a[0] (C)a (D)a++二、判断题(评分标准20分,每小题2分)1. 一个C程序的执行是从本程序文件的第一个函数开始,到main函数结束。
2. 在C程序中,用整数0表示逻辑值“假”。
3. C语言中while 和do-while 循环的主要区别是do-while的循环体至少无条件执行一次。
4. 设变量定义为char s[]=“hello”,则数组s中有6个元素。
5. 对以下语句的正确理解是将5 个初值依次赋给a[6] 到a[10]。
int a[10] = {6, 7, 8, 9, 10};6. 若变量已正确定义,表达式x=y=1符合C语言语法。
7. 表达式!(x>0‖y>0)等价于!(x>0&&!(y>0)。
8. C语言规定简单变量作实参时,它与对应形参之间的数据传递方式是实参和形参间来回传递。
9. 在C源程序中将语句“if(x==5) y++;”误写成“if(x=5) y++;”,将导致编译错误。
10. fscanf函数的正确调用格式为:fscanf (fp, 格式字符串,输出表列); 。
三、填空题(评分标准10分,每小题2分)1. 在C语言中,NULL的数值为________。
2. 如果定义结构体struct student {int id;int age;} * s;则如果要表示其成员变量id,可以用________。
3. C程序是由函数构成的。
其中有并且只能有________个主函数。
4. 在内存中存储“A”要占用________个字节。
5. 若定义:int a=88,*b=&a;,则printf("%d\n",*b);的输出结果为。
四、程序改错题(评分标准20分,每小题5分)1. 假设该程序输入10个数字:1 2 3 4 5 6 7 8 9 10,则程序运行结果:1--3--5--7--9-- 。
#include <stdio.h>void main(){ int i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){ if (a[i]%2=0) /*$*/continue;elseprintf("%d--",a[i]);}}说明:该程序中“/*$1*/”行中的语句if (a[i]%2=0) 有错误,请改正(注意:不得加行、减行、加句、减句)。
运行样例1:1 3 2 6 10 20 8 12 5 3 运行结果:1--3--5--3--答案:if(a[i]%2==0)2. 以下程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。
#include <stdio.h>void main(){ int i, x, y=1;scanf("%d", &x);for(i=2; i>x/2; i++) /*$1*/if(x%i==0){ y=0;break;}printf("%d\n",y);}说明:该程序中“/*$1*/”行中的语句for(i=2; i>x/2; i++) 有错误,请改正(注意:不得加行、减行、加句、减句)。
运行样例1:7 运行结果:1答案:for(i=2; i<=x/2; i++)3. 假设该程序输入两个数据:2 3,程序运行结果为:2。
#include "stdio.h"int *fun(int *a,int *b){ int m;m+=*b-3;return(m); /*$*/}void main(){ int x,y;int *a=&x,*b=&y;int *k;scanf("%d%d",&x,&y);k=fun(a,b);printf("%d\n",*k);}说明:该程序中“/*$1*/”行中的语句return(m); 有错误,请改正(注意:不得加行、减行、加句、减句)。
运行样例1:5 4 运行结果:6答案:return(&m);4. 本程序功能:实现对字符数组的倒序。
输入字符串:hg25DA, 输出结果:str now is AD52gh#include <stdio.h>#include <string.h>#include <dos.h>int main(){ char str[50] ;int length = strlen(str);char * p1 = str;char * p2;scanf("%s",str);length = strlen(str);p2 = str + length; /*$*/while(p1 < p2){ char c = *p1;*p1 = *p2;*p2 = c;++p1;--p2;}printf("str now is :%s\n",str);return 0;}说明:该程序中“/*$1*/”行中的语句p2 = str + length; 有错误,请改正(注意:不得加行、减行、加句、减句)。
运行样例1:SH87ch 运行结果:str now is:hc78HS答案:p2 = str + length – 1;五、程序填空(评分标准10分,每小题5分)1. 阅读以下程序,假设输入为it6y7hh9e,请写出运行后的结果。
#include <stdio.h>#include <string.h>#include <ctype.h>void f(char *s){ int i=0;while(s[i]!='\0')if(isdigit(s[i]))/*$*/else i++;}void main(){ char str[80];gets(str);f(str);puts(str);}说明:该程序中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句)。
该程序功能:删除字符串中的数字字符。
这里用到isdigit()函数,所以需要在前加#include <ctype.h>。
运行样例1:i52love89y793ou 运行结果:iloveyou答案:strcpy (s+i,s+i+1);2. 以下程序对test.txt进行读操作,并将读出的文本输出到屏幕上。
设test.txt文件原有内容:“hello,welcome to the world of C!”。
#include <stdio.h>#include <stdlib.h>void main(){ FILE *fp;char ch;fp = fopen("test.txt", "r");if (fp == NULL){ printf("can not open test\n");exit(0);}ch = fgetc(fp);while(/ *$* /){ putchar(ch);ch = fgetc(fp);}fclose(fp);}说明:该程序中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句)。
运行结果1:hello,welcome to the world of C!答案:ch != EOF六、程序设计(评分标准20分,每小题10分)1. 编制函数,其功能是在float类型一维数组(5个元素)中查找最大值、最小值,并将它们返回到调用程序,并输出,一维数组的数值要求在主函数中输入。
参考答案:#include <stdio.h>#include <stdlib.h>void find(float num[],int n,float *min,float *max);void main(){ float min=1000000.0,max=0,num[5];int i;for(i=0;i<5;i++)scanf(“%f”,&num[i]);find(num,5,&min,&max);printf("%.1f %.1f",max,min);getchar();}void find(float num[],int n,float *min,float *max){ int i;for(i=0;i<n;i++){ if(num[i]<*min) *min = num[i];if(num[i]>*max) *max = num[i];}}运行样例1:1.5 12.3 42.2 0.7 14.5(输入5个数)运行结果1:42.2 0.7运行样例2:1.2 15.4 83.7 0.1 28.2(输入5个数)运行结果2:83.7 0.12. 某一电脑外设批发店经营品牌无线键盘鼠标套装。