c语言模拟试题(3)

合集下载

C语言程序设计单元测试题三【精品-doc】

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语言程序设计模拟试题

c语言程序设计模拟试题

c语言程序设计模拟试题C语言程序设计模拟试题一、选择题(每题2分,共20分)1. C语言中,以下哪个不是合法的变量名?- A. 2variable- B. Variable2- C. variable_2- D. Variable2. 在C语言中,以下哪个选项是正确的字符串字面量? - A. "Hello, World"- B. 'Hello, World'- C. "Hello World"- D. {"Hello", "World"}3. 以下哪个不是C语言中的基本数据类型?- A. int- B. char- C. float- D. string4. 在C语言中,以下哪个不是运算符?- A. +- B. -- C. *- D. to5. 以下哪个语句是正确的C语言循环语句?- A. do { ... } while;- B. while { ... }- C. for { ... }- D. switch { ... }6. 以下哪个函数是C语言标准库中用于字符到整数的转换? - A. atoi()- B. itoa()- C. atof()- D. strtol()7. 在C语言中,以下哪个不是控制语句?- A. if- B. switch- C. continue- D. return8. 在C语言中,以下哪个是正确的函数声明?- A. int function_name();- B. function_name int;- C. int function_name = 0;- D. int function_name = function();9. 在C语言中,以下哪个是正确的数组声明?- A. int array[10];- B. int [10] array;- C. int array = 10;- D. int array[10] = {0};10. 在C语言中,以下哪个是正确的结构体声明?- A. struct Student { int age; char name[50]; };- B. struct { int age; char name[50]; } Student;- C. Student struct { int age; char name[50]; };- D. struct Student int age; char name[50];二、填空题(每空2分,共20分)1. 在C语言中,一个变量的声明必须在______。

c语言笔试模拟题以及答案

c语言笔试模拟题以及答案

1.一、单选题:(每题1.5分,共60分)1、 C语言程序的基本单位是_______.A. 语句B. 函数C. 程序行D. 字符答案: B2、 C语言程序由( )组成A. 子程序B. 过程C. 函数D. 主程序段程序答案: C3、算法的表示方法有________。

A. 自然语言,传统流程图,N-S流程图,伪代码,计算机语言B. 高级语言,汇编语言,机器语言C. C语言,QBASIC语言,InterDevD. 图形图像法,描述法,编程法E. 计算机语言答案: A4、以下程序的输出结果是main( ){ int k=17;printf(“%d,%o,%x \n”,k,k,k);}A. 17,021,0×11B. 17,17,17C. 17,0×11,021D. 17,21,11答案: D5、下列变量定义中合法的是A. short _a=1-.le-1;B. double b=1+5e2.5;C. long do=0xfdaL;D. float 2_and=1-e-3;答案: A6、 C语言中合法的字符常量是____A. ‘\084′B. ‘\X43′C. ‘ab’D. “\0″答案: B7、下面说法中正确的是( )A. int型和long型运算先将int型转换成unsigned型,再转换B. 两个float型运算结果为double型C. 只要表达式中存在double型,所有其他类型数据都必须转D. 表达式中的类型转换与运算顺序有关答案: C8、以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值答案: D9、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A. n=(n*100+0.5)/100.0B. m=n*100+0.5,n=m/100.0C. n=n*100+0.5/100.0D. n=(n/100+0.5)*100.0答案: B10、下列运算符中优先级最高的是A. <B. +C. &&D. !=答案: B11、若变量已正确定义并赋值,下面符合C语言语法的表达式是A. a:=b+1B. a=b=c+2C. int 18.5%3D. a=a+7:c+b答案: B12、设CH是字符型变量,其值为’A',下列表达式的值是CH=(CH > =’A'&&CH < =’Z')?(CH+32):CHA. AB. aC. zD. Z答案: B13、表达式18/4*sqrt(4.0)/8值的数据类型为A. intB. floatC. doubleD. 不确定答案: C14、在C语言中,要求运算数必须是整型的运算符是A. /B. %C. !D. >答案: B15、以下说法中正确的是A. #define和printf都是C语句B. #define是C语句,而printf不是C. printf是C语句,但#define不是D. #define和printf都不是C语句答案: D16、下面程序的输出是main(){int a=-1,b=4,k;k=(a++<=0)&&(!(b–<=0));printf(“%d%d%d%\n”,k,a,b);}A. 0 0 3B. 0 1 2C. 1 0 3D. 1 1 2答案: C17、设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a > b)&&(n=c > d)后n的值是A. 1B. 2C. 3D. 4答案: B18、若有条件表达式 (exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是A. (exp==0B. (exp!=0)C. (exp==1)D. (exp!=1)答案: B19、为表示关系X≥Y≥Z应使用C语言表达式:__A. (X > =Y)&&(Y > =Z)B. (X > =Y)and(Y > =Z)C. (X≥ Y≥ Z)D. (X≥ Y)&(Y≥ Z)答案: A20、能正确表示逻辑关系:”a ≥ =10或a ≤ 0″的C语言表达式是A. a > =10 or a< =0B. a > =0||a < =10C. a > =10 && a < =0D. a < =0 || a>=10答案: D21、下面的程序是______main(){ int x=3,y=0,z=0;if (x==y+z) printf(“****”);else printf(“####”);}A. 有语法错误不能过通过编译B. 输出****C. 可能通过编译,但是不能通过连接,因而不能运行D. 输出####答案: D22、执行下面语句后的输出为( )int i= -1;if (i < =0)printf(“****\n”)else printf(“%%%%\n”)A. ****B. %%%%C. %%%%CD. 有语法错,不能执行答案: D23、若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是#include <stdio.h>main(){char c;int v0=0,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=%d\n”,v0,v1,v2);}A. v0=7,v1=4,v2=7B. v0=8,v1=4,v2=8C. v0=11,v1=4,v2=11D. v0=12,v1=4,v2=12答案: D24、以下程序的输出结果是main( ){ int n=4;while(n–)printf(“%d “,–n);}A. 2 0B. 3 1C. 3 2 1D. 2 1 0答案: A25、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

大连理工大学C语言期中模拟试题3

大连理工大学C语言期中模拟试题3

一、1.下面四个选项中,均是不合法的用户标识符的选项是(D)。

A、float la0 _AB、A P_0 doC、_123 temp intD、b-a goto int2.表达式18/4*sqrt(4.0)/8值的数据类型为(A)。

A、doubleB、floatC、intD、不确定3.设:long w=65535,t=7654321;根据下面的输出结果,正确的程序段是(C ).w=65535,t=7654321endA、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");D、printf("w=%5u,t=%7u\n",w,t);printf( "end");4.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。

哪个数作为逻辑“假”值(A)。

A、0B、-1C、非零的数D、15.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。

哪个数作为逻辑“假”值(A)。

A、0B、-1C、非零的数D、16.在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是(B)。

A、(E>0||E<0)B、(E==0)C、(!E==0)D、(E!=0)7.下面有关 for 循环的正确描述是(C)。

A、for 循环是先执行循环体语句,后判断表达式B、在 for 循环中,不能用 break 语句跳出循环体C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来D、for 循环只能用于循环次数已经确定的情况8.在C语言中,一维数组的定义方式为:类型说明符数组名(B)。

C语言测试题三

C语言测试题三

测试题三一、填空1、以下选项中合法的变量是()A、 5aB、_10_C、A%D、sizeof2、有以下程序main(){ int x=35, B; char z='B' ;B = (( x ) && ( z <'b' ));printf("%d\n", B ); }程序运行后的输出结果是()A、1B、0C、35D、663、有以下程序main(){ int a = 3;do{ printf("%d,", a-=2 ); }while( ! (--a) );printf("\n"); }程序运行后的输出结果是A、1B、1, -2C、3,0D、1,04、有以下程序main(){ int a[3]={0}, i, j, k=2;for( i=0; i<k; i++ )for( j=0; j<k; j++ ) a[j] = a[i]+1; printf("%d\n", a[1] );}程序运行后的输出结果是A、0B、2C、1D、35、有以下程序#include <stdio.h>#define SUB( X, Y ) (X+1)*Ymain(){ int a=3, b=4;printf("%d\n",SUB(a++ ,b++ ));}程序运行后的输出结果是A、25B、20C、12D、166、有如下程序int sum(int a, int b){return a + b - 2;}main(){int i;for (i=0; i<5; i++)printf("%d", sum(i, 3));printf("\n");}程序运行后的输出结果是A、12345B、01234C、45678D、543217、有以下函数int fun( char *s, char *t ){ while(( *s )&&( *t ) && (*t++ == *s++ ) );return (*s-*t);}函数的功能是A、比较两个字符串的大小B、求字符串的长度C、将字符串s复制到字符串t中D、连接字符串s和字符串t8、有以下程序#include <stdio.h>int m1(int x,int y){ return x<=y ? x :y; }int m2(int x,int y){ return x<=y ? y :x; }int fun(int a,int b){ return a+b; }main(){ int x=2,y=3,z=1;printf("%d\n", fun(m1(x,y),m2(y,z)));}程序的运行结果是A、3B、4C、5D、69、有以下程序#include <stdio.h>#define FNA(x) x*x#define FNB(x) x+xmain(){ int a=2,b=4;printf("%d,%d\n",FNA(FNB(a)),FNB(FNA(b)));}程序运行后的输出结果是A、8,32B、16,32C、8,16D、16,1610、有以下程序main(){ int c[6]={10,20,30,40,50,60}, *p,*s;p = c; s = &c[5];printf("%d\n", s-p ); }程序运行后的输出结果是A、6B、50C、5D、6011、有以下程序#include <stdio.h>main(){ int aa[3][3]={ {2},{4},{6} }, i, *p = &aa[0][0];for ( i=0; i<2; i++ ){ if( i == 0 ) aa[i][i+1] = *p + 1;else ++p;printf("%d ", *p );}}程序运行后的输出结果是A、2 6B、2 3C、4 3D、4 612、有以下程序int change(int* data){return (*data) ++;}main() {int data = 123;change(&data);printf("%d,", data);data = change(&data);printf("%d,", data); printf("\n");}程序运行后的输出结果是A、124,124,B、123,124,C、124,123,D、123,123,13、有以下程序void fun( int x, int y, int *z ){ *z = y-x; }main(){int a, b, c;fun(10,5,&a ); fun(7,a,&b ); fun(a,b,&c );printf("%d,%d,%d\n", a,b,c );}程序运行后的输出结果是A、-5,-12,-7B、5,2,3C、-5,-12,-17D、5,-2,-714、有以下程序#include <stdio.h>int k=5;void f(int *s){ s=&k;*s=k;}main( ){ int m=3;f(&m);printf("%d,%d\n", m, k);}程序运行后的输出结果是A、3,3B、5,5C、3,5D、5,315、有以下程序#include <stdio.h>#include <string.h>main( ){ char a[20]="ab",b[20]="cdef";int k=0;strcat(a,b);while(a[k]!='\0') { b[k]=a[k]; k++;}puts(b);}程序的运行结果是A、abcdefB、cbcdefC、cdefD、ab二、看程序写结果1、main(){int a = 0, b = 1;if (a++ && b++)printf("T");elseprintf("F");printf("a=%d,b=%d\n", a, b);}程序运行后的输出结果是2、void fun ( int *s ){static int j=0;do s[j] += s[ j+1]; while(++j<2);}main(){int i, a[10]={1,2,3,4,5};for( i=1; i<3; i++ ) fun( a );for( i=1; i<5; i++ ) printf("%d",a[i]);printf("\n"); }3、void change(int* array, int len){for (; len>=0; len--)array[len] += 2;}main() {int i, array[5] = {1,2};change(array, 4);for (i=0; i<4; i++)printf("%d,", array[i]);printf("\n");}4、void fun( int *s, int n1, int n2 ){int i,j,t;i=n1; j=n2;while( i<j ){ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t;i++; j--;}}main(){int a[10] = { 1,2,3,4,5,6,7,8,9,0} ,i, *p = a;fun( p,0,3 ); fun( p,4,9 ); fun( p,0,9 );for( i=0; i<10; i++ )printf("%d ", *( a+i ) );printf("\n" );}程序运行后的输出结果是5、main(){char *s="120119110";int n0,n1,n2,nn,i;n0=n1=n2=nn=i=0;do{switch(s[i++]){ default : nn++;case '0' : n0++;case '1' : n1++;case '2' : n2++;}} while(s[i]);printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);} 程序的运行结果是6、void f(int x[], int n){ if ( n > 1){ printf("%d,", x[0]);f(&x[1], n-1);printf("%d,", x[0]);}elseprintf("%d,", x[0]);}main( ){ int z[3] = {4, 5, 6};f(z, 3);printf("\n"); }程序运行后的输出结果是三、填空1、以下程序的功能是:通过调用calc函数,把所求得的两数之和值放入变量add 中,并在主函数中输出。

《C语言程序设计》试题3及答案

《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语言试题3

C语言试题3

C语言试题3一、选择题(每小题2分,共40分)1.下列属于整型常量的是________。

A.12B.12.0C.-12.0D.10E102.下列是字符串常量的是:()A.'HolleWorld'B."15"C.VC D.'m'3.下列表达式为关系表达式的为_________。

(其中a为一整型变量)A.3+4*5 B.a==10 C.a>0?a:-a D.a=14.下列对一维数组的声明正确的是:()A.int a(10);B.int n=10,a[n];C.int n;scanf(“%d”,&n);int a[n];D.#define SIZE10int a[SIZE];5.根据C语言的语法规则,下列________个是不合法用户标识符。

A.int B.array C.string1 D._exam6.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为。

A.float B char C int D double7.已知int x=5,y=6,z=7;以下语句执行后x,y,z的值是。

if(x>y)z=x;x=y;y=z;A)x=5,y=6,z=7B)x=6,y=7z=7C)x=6,y=5,z=5D)x=6,y=7,z=68.执行int a=8;a+=a*a;语句后,a的值是______。

A.24 B.64 C.72 D.5129.C语言用()表示逻辑“真”的值。

A.true B.t或y C.非零数D.整型值010.两个指针变量的值相等时,表明两个指针变量是________________。

A.占据同一内存单元。

B.指向同一内存单元地址或者都为空。

C.是两个空指针。

D.都没有指向。

11.字符串指针变量中存入的是________________。

A.字符串的首地址B.字符串C.第一个字符D.字符串变量。

专升本C语言程序设计模拟试卷C3

专升本C语言程序设计模拟试卷C3

计算机科学与技术专业《基础知识》模拟试卷三(考试时间150分钟,满分300分,共三部分)第一部分 C语言程序设计(共100分)一、单项选择题(本大题共30小题,每小题2分,共60分)1. 下列各选项中,均是合法有效的标识符的是【】A. 3dayB.lower C.day_3D.abSum_days abcde student_name_oflotus_1_2_3 defaultM.D.john2. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是A.A%2==1B.!(A%2==0)C.!(A%2)D.A%23. 下列程序的输出结果是【】#include <stdio.h>void main(){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++; break;}printf(“%d,%d\n”,a,b);}A.1,1B.2,1C.1,0D.2,24. 以下关于switch语句和break语句的描述中,只有正确的是【】A.在switch语句中必须使用break语句B.在switch语句中,可以根据需要使用或不使用break语句C.break语句只能用于switch语句中D.break语句是switch语句的一部分5. 下面程序的输出是【】。

main(){int x=0x23;printf(“%d\n”,- -x);}A.18B.19C.34D.356. 下列函数的输出结果是【】#include <stdio.h>int f1(int xb){extern int xa;return (xa * xb);}void main(void){extern int xb;int xa=5;printf(“xa=%d,xb=%d,result=%d”,xa,xb,f1(xa));return 0;}int xa=3,xb=4;A. 3,4,12B. 5,4,20C. 5,4,15D. 3,4,157. c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A. 地址传递B. 由实参传给形参,再由形参传回给实参C. 单向值传递D. 由用户指定传递方式8. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其原因是【】void main(){int *p,a;p=&a;scanf(“%d”,*p);……}A.*p表示的是指针变量p的地址B.*p表示的是变量a的值,而不是变量a的地址C.*p表示的是指针变量p的值D.*p只能用来说明p是一个指针变量9. 下列程序段的输出结果是【】。

C语言模拟题

C语言模拟题

C语言模拟试题(一)一、选择题1、以下字符中不是转义字符的是( A )。

A、 '\c'B、 '\b'C、 '\\'D、 '\a'2、设 a=12,且 a定义为整型变量。

执行语句a+=a-=a*=a;后 a的值为( A)。

A、 0B、 144C、 132D、 123、已定义 float x=,y=;依照下面的输出结果,正确的输出语句是(C ).y+x=,y-x=A、 printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);B、 printf("y+x=%f,y-x=%f\n",y+x,y-x);,lC、 printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);D、 printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);4、执行下面程序段后 ,b的值为 (A ).int s=35;char t='A'; int b;b=((s&&4)&&(t<'a'));A、 1B、 3C、 2D、 05 k是整型 ,则以下程序段的执行结果是:(B )k=-3;if(k<=0) printf("####")else printf("&&&&");A、 ####B、有语法错误,无结果C、 &&&&D、 ####&&&&6设 j和 k都是 int 种类,则下面的 for 循环语句( D)。

for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);A、最多执行 9次B、是无量循环C、循环体一次也不执行D、最多执行 10 次7 以下正确的描述是(A ).A、只幸亏循环体内和switch 语句内使用 break 语句B、 continue 语句的作用是停止整个循环的执行C、从多层嵌套的外层循环中退出时,只能使用 goto 语句D、在循环体内使用break和 continue 语句的作用相同8 以下能对一维数组a进行正确初始化的语句是(B)。

C语言程序设计模拟试题3(附答案)

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).

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语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。

2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。

他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。

在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。

C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。

丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。

2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。

3. 输出结果为“helloworld”。

strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。

在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。

如果第一个字符串不够大,程序会出现内存溢出等问题。

4. A、B、C三个数据类型可以用来存储浮点数。

5. 输出结果为“6”。

在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。

计算机应用类专业C语言考试试题和答案3

计算机应用类专业C语言考试试题和答案3

计算机应用类专业C语言考试试题及答案一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,本大题共20小题,每小题3分,共60分)1、以下选项中不合法的标识符是()A)&a B)print C)_00 D)FOR2、以下选项中能表示合法常量的是()A) 1.5E2.0 B)“\007”C)1,200D)‘\ ’3、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是()A)i=(a+k)<=(i+k); B)a=a++,i++; C)i=a%11;D)i=!a;4、下列叙述中正确的是()A.可以用关系运算符比较字符串的大小B.空字符串不占用内存,其内存空间大小是0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量5、以下叙述中错误的是()A.非零的数值型常量有正值和负值的B.常量是在程序运行过程中值不能变C.定义符号常量必须用类型名来设定D.用符号名表示的常量叫符号常量6、下列关系表达式中,结果为“假”的是()A.(3+4)>6B.(3!=4)>2C.3<=4||3D.(3<4)==17、C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()A.预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B.用户标识符可以由字母和数字任意顺序组成C.在标识符中大写字母和小写字母被认为是相同的字符D.关键字可用作用户标识符,但失去原有含义8、设有定义:int x=2;,以下表达式中,值不为6的是()A)x*=(1+x) B)x*=x+1 C)x++,2*x D)2*x,x+=2 9、若有以下程序#include <stdio.h>main(){ int b=10,a=-11;a%=b%=4;printf(“%d %d\n”,a,b);} 则程序的输出结果是()A)1 2 B)-1 2 C)1 -2 D)-1 -2 10、有以下程序,若要输出结果为:12,a,34,b,则输入是()(口表示空格,<CR>表示回车)#include <stdio.h>void main(){ int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c\n”,a1,c1,a2,c2);}A.12,a,34,b<CR>B.12a34b<CR>C.12口a34口b<CR>D.12口a口34口b<CR>11、有以下程序#include <stdio.h>int fun(){ static int x=1; x*=2; return x; }void main(){ int i ,s=1;for(i=1;i<=2;i++) s=fun();printf(“%d\n”,s);}程序运行后的输出结果()A.1B.4C.8D.012、设有如下程序段#include <stdio.h>char s[20] =”Beijing”, *p;p=s;则执行p=s;语句后,以下叙述正确的是()A.数组s中的内容和指针变量p中的内容相同B.s数组中元素的个数和p所指字符串长度相等C.s和p都是指针变量D.可以用*p表示s[0]13、有以下程序#include <stdio.h>#include <string.h>void fun (char *s [], int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=j+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){ t=s[i]; s[i]=s[j]; s[j]=t;}}void main(){ char *ss[]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};fun(ss,5); printf(“%s,%s\n”,ss[0],ss[4]);}程序的运行结果是()A.aaaacc,xyB.bcc,aabccC.aabcc,bccD.xy,aaaacc14、有以下程序#include <stdio.h>#include <string.h>void fun (char *w, int m){ char s, *p1, *p2;p=w; p2=w+m-1;while(p1<p2){ s=*p1; *p1=*p2; *p2=s; p1++; p2--; } }void main(){ char a[]=”123456”; fun(a,strlen(a)); puts(a); }程序运行后的输出结果是()A.116611B.654321C.123456D.16161615、有以下程序#include <stdio.h>#include <stdlib.h>fun(int *p1,int *p2,int *s){ s=(int*)malloc(sizeof(int));*s=*p1+*p2;free(s);}void main(){ int a=1,b=40,*q=&a;fun(&a,&b,q);printf("%d\n",*q);}程序运行后的输出结果是()A.42B.0C.1D.4116、若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch 语句是()A.switch(a+9) B.switch a*b{ case c1:y=a-b; { case 10:x=a+b;case c1:y=a+b; default :y=a-b;} }C.switch(a+b)D.switch(a*b+b*b);{ case 1: case3:y=a+b;break; { default:break;case 0: case4:y=a-b; case 3:y=a+b; break;} case 2:y=a-b; break;}17、设有定义:int x=0,*p;,立即执行以下语句,正确的语句是()A.p=x;B.*p=x;C.p=NULL;D.*p=NULL;18、设有定义:int x[2][3];,则以下关于二维数组x 的叙述错误的是()A.x[0]可看作是由3个整型元素组成的一维数组B.x[0]和x[1]是数组名,分别代表不同的地址常量C.数组x 包含6 个元素D.可以用语句x[0]=0;为数组所有元素赋初值019、有以下程序#include <stdio.h>void main(){ int a[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){ a[i]=*p;p++; }printf("%d\n",a[2]);}A.30B.40C.10D.2020、有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数)#include <stdio.h>#include <string.h>main(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));} 程序运行后的输出结果是()A.a12xyzB.12yzC.a2yzD.bc2yz二、综合应用题(本大题共1小题,每小题20分,每空5分,共20分)21. 给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

c语言模拟试题

c语言模拟试题

c语言模拟试题C语言模拟试题一、选择题(每题2分,共20分)1. 以下哪个是C语言的关键字?A. intB. IntegerC. INTD. integer2. C语言中,用于定义一个整型变量的关键字是:A. varB. defineC. letD. int3. 以下哪个不是C语言的标准输入输出库函数?A. printf()B. scanf()C. coutD. getchar()4. C语言中,用于实现循环的关键字是:A. loopB. whileC. doD. repeat5. 在C语言中,以下哪个是正确的数组声明语句?A. int numbers[];B. int numbers(10);C. int numbers = 10;D. int numbers = {1, 2, 3};6. 以下哪个是C语言中正确的字符串定义方式?A. string str = "Hello";B. char str[] = "Hello";C. char str = "Hello";D. string str[] = "Hello";7. C语言中,用于定义函数的关键字是:A. functionB. funcC. defD. void8. 以下哪个是C语言中正确的条件语句?A. if (x == y)B. switch (x)C. case x:D. default9. C语言中,用于定义指针的符号是:A. &B. *C. ^D. %10. 在C语言中,以下哪个是正确的结构体声明语句?A. struct Student {int age; char name[50];};B. struct {int age; char name[50]} student;C. type Student {int age; char name[50]};D. Student struct {int age; char name[50]};二、填空题(每空2分,共20分)11. 在C语言中,一个变量的声明必须在____的开始。

C语言程序设计试题附答案3篇

C语言程序设计试题附答案3篇

C语言程序设计试题附答案3篇C语言程序设计试题附答案11. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; B float a=b=10.0;C)int a=10,b= D)float a,b=4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i=0_______;i--){if(____i%17==0____④________) break;}printf("%d\n",__⑤_i____);}3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i0)?? { count++;?? sum+= _a[i]__③___ ;?? }? }printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);}4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。

全国计算机等级考试2019年二级C语言程序设计模拟试题3_真含答案与解析)-交互50

全国计算机等级考试2019年二级C语言程序设计模拟试题3_真含答案与解析)-交互50

全国计算机等级考试2019年二级C语言程序设计模拟试题3(总分100, 做题时间120分钟)选择题(每题 1 分,共 40 分)1.下列叙述中正确的是()。

SSS_SINGLE_SELA栈与队列都只能顺序存储B循环队列是队列的顺序存储结构C循环链表是循环队列的链式存储结构D栈是顺序存储结构而队列是链式存储结构分值: 1答案:B栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。

为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构。

2.算法空间复杂度的度量方法是()。

SSS_SINGLE_SELA算法程序的长度B算法所处理的数据量C执行算法所需要的工作单元D执行算法所需要的存储空间分值: 1答案:D算法的空间复杂度是指执行这个算法所需要的存储空间,包括:①输入数据所占的存储空间;②程序本身所占的存储空间;③算法执行过程中所需要的额外空间。

3.设有栈 S 和队列 Q,初始状态均为空。

首先依次将 A, B, C, D, E, F 入栈,然后从栈中退出三个元素依次入队,再将 X, Y, Z 入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为()。

SSS_SINGLE_SELADEFXYZABCBFEDZYXCBACFEDXYZCBADDEFZYXABC分值: 1答案:B栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。

队列是指允许在一端进行插入,而在另一端进行删除的线性表。

将 A, B,C, D, E, F 入栈后,栈中元素为 ABCDEF,退出三个元素入队,队列元素为 FED,将 X, Y, Z 入栈后栈中元素为 ABCXYZ,全部入队后,队列元素为 FEDZYXCBA。

4.某二叉树的前序序列为 ABCDEFG,中序序列为 DCBAEFG,则该二叉树的后序序列为()。

C语言模拟试题

C语言模拟试题

(1)一:选择题(本题共15小题,满分30分)(1).以下叙述正确的是BA)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(2)以下C语言用户标识符中,不合法的是DA)_1B)AaBcC)a_bD)a—b(3)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是CA)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(4)以下程序的输出结果是(B)。

main(){intx=2,y=-1,z=2;if(x<y)if(y<0)z=0;elsez=z+1;printf(“%d\n”,z);}(5).设inta=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是(C)A.9,19B.9,20C.10,19D.10,20(6)有以下程序#include"stdio.h"main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if((i*j)>3)break;m*=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是AA)m=6B)m=2C)m=4D)m=5(7)有以下程序D#include"stdio.h"main(){inta=1;intb=2;for(;a<8;a++){b+=a;a+=2;}}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(8)以下关于return语句的叙述中正确的是bA)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(9)下列选项中,能正确定义数组的语句是DA)intnum[0..2008];B)intnum[];C)intN=2008;intnum[N];D)#defineN2008intnum[N];(10).有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p,b;p=&a[3];b=p[5];b中的值是(D)A.5B.6C.8D.9(11)有以下程序main(){inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]];printf("%d\n",s);}程序运行后的输出结果是cA)6B)10C)11D)15(12)有以下程序#include"stdio.h"#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是CA)0B)-12C)-20D)10(13)有以下程序#include"stdio.h"{inta=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是aA)0B)1C)2D)3(14)下面程序段的运行结果是(A)#include<stdio.h>main(){inta=1;intb=2;intc=2;intt; while(a<b<c){t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);}A)1,2,0B)2,1,0 C)1,2,1D)2,1,1(15)有以下程序#include"stdio.h"main(){ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case 4:c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是AA)3B)5C)7D)9二填空题(本题共4小题,满分20分)1.(4分)以下程序运行结果是:X=8#include<stdio.h>main(){inti,j,X=0;for(i=0;i<2;i++){X++;for(j=0;j<3;j++){if(j%2)continue;X++;}X++;}}2.(4分)以下程序运行结果是:x=10123#include<stdio.h>voidfun1(intx){x=20;}voidfun2(intb[4]){intj;for(j=0;j<4;j++){b[j]=j;}}main(){intx=10;inta[4]={1,2,3,4},k;fun1(x);fun2(a);for(k=0;k<4;k++){printf("%d\n",a[k]);}}3.(4分)↙则程序运行结果是:66#include<stdio.h>main(){intx,y;scanf("%2d%*4s%2d",&x,&y);printf("%d",y-x);}4.(8分)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。

C语言程序设计模拟试题三(含答案)

C语言程序设计模拟试题三(含答案)

C语言程序设计模拟试题三(含答案)1、计算机的存储器完整的应包括A) 软盘、硬盘B) 磁盘、磁带、光盘C) 内存储器、外存储器D) RAM、ROM2、计算机中运算器的作用是A) 控制数据的输入/输出B) 控制主存与辅存间的数据交换C) 完成各种算术运算和逻辑运算D) 协调和指挥整个计算机系统的操作3、软磁盘处于写保护状态时,其中记录的信息A) 绝对不会丢失B) 不能被擦除,但能追加新信息C) 不能通过写磁盘操作被更新D) 不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除4、光盘根据基制造材料和记录信息的方式不同,一般可分为A) CD、VCDB) CD、VCD、DVD、MP3C) 只读光盘、可一次性写入光盘、可擦写光盘D) 数据盘、音频信息盘、视频信息盘5、在计算机系统中,可执行程序是A) 源代码B) 汇编语言代码C) 机器语言代码D) ASCII码6、计算机软件系统包括A) 操作系统、网络软件B) 系统软件、应用软件C) 客户端应用软件、服务器端系统软件D) 操作系统、应用软件和网络软件7、目前,一台计算机要连入Internet,必须安装的硬件是A) 调制解调器或网卡B) 网络操作系统C) 网络查询工具D) WWW浏览器8、在多媒体计算机系统中,不能存储多媒体信息的是A) 光盘B) 磁盘C) 磁带D) 光缆9、要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是A) TYPE a*.*B) TYPE abc.exeC) TYPE pro.c>PRND) TYPE abc.txt10、下列更改文件名的命令中正确的是A) REN A:file1 C:F1B) RENAME A: A:file1 C:F1C) REN A:file1 F1D) REN A:file1 \\SUB\\F111、已知A盘为DOS系统启动盘,只有A:\DOS下有自动批处理文件,其中内容为:CD\DOSMD USERCD USER由A盘启动DOS系统后,A盘的当前目录是A) \\DOS B) \\DOS\\USER12、MS-DOS是A) 分时操作系统B) 分布式操作系统C) 单用户、单任务操作系统D) 单用户、多任务操作系统13、在Windows操作系统中,不同文档之间互相复制信息需要借助于A) 剪切板B) 记事本C) 写字板D) 磁盘缓冲器14、在Windows操作系统中A) 同一时刻可以有多个活动窗口B) 同一时刻可以有多个应用程序在运行,但只有一个活动窗口C) 同一时刻只能有一个打开的窗口D) DOS应用程序窗口与Windows应用程序窗口不能同时打开着15、下列叙述中正确的是A) 所有DOS应用程序都可以在Windows操作系统中正确运行B) 所有DOS应用程序都不能在Windows操作系统中正确运行C) 大部分DOS应用程序可以在Windows操作系统中正确运行D) 为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行16、下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数17、以下所列的C语言常量中,错误的是A) 0xFF B) 1.2e0.518、下列选项中,合法的C语言关键字是A) VAR B) cherC) integer D) default19、以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z) 的C语言表达式是A) x/y*z B) x*(1/(y*z))C) x/y*1/z D) x/y/z20、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是A) -3 B) 9C) -12 D) 621、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4C) 3 D) 122、若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A) 10<回车>22<回车>33<回车>B) 10.0,22.0,33.0<回车>C) 10.0<回车>22.0 33.0<回车>D) 10 22<回车>33<回车>23、若执行以下程序时从键盘上输入9,则输出结果是Main0{ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10C) 9 D) 824、若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是A) swich(a+b);{ case 1:y=a+b; break;case 0:y=a-b; break;}B) switch(a*a+b*b){case 3:case 1:y=a+b;break;case 3:y=b-a,break;}C) switch a{ case c1 :y=a-b; breakcase c2: x=a*d; breakdefault:x=a+b;}D) switch(a-b){default:y=a*b;breakcase 3:case 4:x=a+b;break;case 10:case 11:y=a-b;break;}25、有以下程序段int k=0while(k=1)k++;while 循环执行的次数是A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次26、以下程序执行后sum的值是min(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf("%d\n",sum);}A) 15 B) 14C) 不确定D) 027、有以下程序段int x=3do{ printf("%d",x-=2); }while (!(--x));其输出结果是A) 1 B) 3 0C) 1 -2 D) 死循环28、若变量c为char类型,能正确判断出c为小写字母的表达式是A) 'a'<=c<= 'z'B) (c>= 'a')||(c<= 'z')C) ('a'<=c)and ('z'>=c)D) (c>= 'a')&&(c<= 'z')29、以下所列的各函数首部中,正确的是A) void play(var :Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)30、以下程序的输出结果是fun(int x, int y, int z){ z=x*x+y*y; }main(){ int a=31;fun(5,2,a);printf("%d",a);}A) 0 B) 29C) 31 D) 无定值31、下列程序段的输出结果是void fun(int *x, int *y){printf("%d %d", *x, *y); *x=3; *y=4;}{ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 1 2 1 2C) 1 2 3 4 D) 2 1 1 232、下列程序的输出结果是main(){char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*--p);}A) 非法B) a[4]的地址C) 5 D) 333、下列程序的运行结果是void fun(int *a, int *b){ int *k;k=a; a=b; b=k;}main(){ int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf("%d %d", a, b);}A) 6 3 B) 3 6C) 编译出错D) 0 034、下面程序的输出结果是{int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}A) 0 B) 1C) 10 D) 935、当调用函数时,实参是一个数组名,则向函数传送的是A) 数组的长度B) 数组的首地址C) 数组每一个元素的地址D) 数组每个元素中的值36、设有以下说明语句struct ex{ int x ; float y; char z ;} example;则下面的叙述中不正确的是A) struct结构体类型的关键字B) example是结构体类型名C) x,y,z都是结构体成员名D) struct ex是结构体类型37、以下只有在使用时才为该类型变量分配内存的存储类说明是A) auto和staticB) auto和registerC) register和staticD) extern和register38、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是A) EOF B) -1C) 非零值D) NULL39、以下程序的输出结果是main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i *(i+1)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A) 20 B) 21C) 22 D) 2340、以下程序的输出结果是main(){ int i, x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}A) 1,5,9 B) 1,4,7C) 3,5,7 D) 3,6,941、以下程序的输出结果是main(){ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%dn",s);}A) 18 B) 19 C) 20 D) 2142、以下程序的输出结果是main(){ char w[][10]={ "ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",w[k]);}A) ABCDFGHKLB) ABCDEFGIJMC) EFGJKOD) EFGHIJKL43、当执行下面的程序时,如果输入ABC,则输出结果是#include "stdio.h"#include "string.h"main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789");printf("%s\n",ss);}A) ABC6789 B) ABC67C)12345ABC6 D) ABC45678944、假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL<回车>,则输出结果为main( int argc, char *argv[])){ while(--argc>0) printf("%s",argv[argc]);printf("\n");}A) ABCDEFG B) IJHLC) ABCDEFGHIJKL D) IJKLABCDEFGH45、以下程序的输出结果是long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1);return s;}main(){ printf("%ld\n", fun(3)); }A) 1 B) 2C) 3 D) 446、以下程序的输出结果是#define SQR(X) X*Xmain(){ int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}A) 16 B) 2C) 9 D) 147、若定义了以下函数:void f(……){……*p=(double *)malloc( 10*sizeof( double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是A) double *p B) float **pC) double **p D) float *p48、以下程序的输出是struct st{ int x; int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){ p=aa;printf("%d\n",++(p->x));}A) 10 B) 11C) 51 D) 6049、假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是A) free(q); p->next=q->next;B) (*p).next=(*q).next; free(q);C) q=(*q).next; (*p).next=q; free(q);D) q=q->next; p->next=q; p=p->next; free(p);50、以下程序的输出结果是main(){ int x=0.5;char z='a';printf("%d\n", (x&1)&&(z<'z') ); }A) 0 B) 1C) 2 D) 3答案:CCCCC BADDCCCABC DBDACCBBDA CCDCCACBCB BBCBCADADA BCCBB。

专升本-计算机应用基础模拟C语言试题-03

专升本-计算机应用基础模拟C语言试题-03

一、单项选择题(共25小题,每题2分,共50分)以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。

1.一个C程序的执行是从A. 本程序的main函数开始,到main函数结束B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C. 本程序的main函数开始,到本程序文件的最后一个函数结束D. 本程序文件的第一个函数开始,到本程序main函数结束2.在C语言中,变量a、b均为整型,则表达式(a=2,b=5,b--,a+b)的值是A. 7B. 8C. 6D. 23.下列字符序列中,合法的字符串常量是A. PiB. "Pi"C. 'Pi'D. '\n'4.已知ch是char型变量,下列不正确...的赋值语句是A. ch=10+28;B. ch='\0';C. ch='7'+'9';D. ch='b-a';5.设有变量定义int i,j=7,*p=&i;与表达式i=j等价的表达式是A. i=*pB. i=&*pC. i=**pD. *p=*&j6.有如下程序,该程序的输出结果是#include <stdio.h>long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));else if(n==2) return(2);else return(1);}main(){ printf("%d\n",fib(4)); }A. 3B. 4C. 5D. 67.以下对一维整型数组a的正确说明是A. int a(l0);B. int n=l0, a[n];C. int n;D. #define SIZE 10scanf(“%d”,&n); int a[n]; int a[SIZE];8.与if(w);中表达式w等价的表示是A. w==0B. w==1C. w!=0D. w!=19.以下对二维数组a进行正确初始化的是A. int a[2][3]={{1,2},{3,4},{5,6}};B. int a[][3]={1,2,3,4,5,6};C. int a[2][]={1,2,3,4,5,6};D. int a[2][]={{1,2},{3,4}};10.以下程序段的输出结果是char c[5]={'a','b','\0','c','\0'};printf("%s",c);A. 'a' 'b'B. abC. ab\0cD. ab c11.下面程序段是输出两个字符串中对应字符相等的字符,请填空char x[]="programming";char y[]="fortran";while(x[i]!='\0'&&y[i]!='\0')if(x[i]==y[i]) printf("%c", );else i++;A. x[i]B. y[i]C. x[++i]D. y[i++]12.以下程序段的输出结果是int a[6]={0,1,2,3,4,5},*p=a;printf("%d\n",*(p+3));A. 0B. 3C. 2D. 413.逻辑运算符两侧运算对象的数据类型A. 只能是0和1B. 只能是0或非0正数C. 只能是整型或字符型数据D. 可以是任何类型的数据14.在“文件包含”预处理语句的使用形式中,当#inlcude后面的文件名用“”(双引号)括起时,寻找被包含文件的方式是A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索C. 仅仅搜索源程序所在目录D. 仅仅搜索当前目录15.以下错误的描述是A. 函数调用可以出现在执行语句中B. 函数调用可以出现在一个表达式中C. 函数调用可以作为一个函数的实参D. 函数调用可以作为一个函数的形参16.设有以下程序段:char s[]="china";char *p=s;则下列叙述正确的是A. s和p完全相同B. 数组s中的内容和指针变量p中的内容相等C. s数组长度和p所指向的字符串长度相等D. *p与s[0]相等17.若有定义int a[10],*p=a;则p+5表示A. 元素a[5]的地址B. 元素a[5]的值C. 元素a[6]的地址D. 元素a[6]的值18.若有以下定义说明:struct student{ int age;int num; }std,*p;p=&std;则以下对结构体变量std中成员age的引用方式不正确...的是A. std.ageB. p->ageC. (*p).ageD. *p.age19.与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是A. if(x>0) y=1;B. if(x)else if(x<0) y=-1; if(x>0) y=1;else y=0; else if(x<0) y=-1;else y=0;C. y=-1;D. y=0;if(x) if(x>=0)if(x>0) y=1; if(x>0) y=1;else if(x==0) y=0; else y=-1;else y=-1;#include <stdio.h>main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1) { b+=3;continue; }b-=5;}printf("%d\n",a);}A. 7B. 8C. 9D. 1021.若有以下说明和语句,则下面表达式中的值为1002的是struct student{ int num;int age;};struct student stu[3]={{1001,20},{1002,19},{1003,21}};struct student *p;p=stu;A.(p++)->ageB.(++p)->numC.(*p).numD.(*++p).age22.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是A. 'x'&&'y'B. x<=yC. x||y+z&&!yD.!(x<y)&&!z||023.下面程序的功能是在输入的一批整数中求出最大者,输入0时结束,请选择填空#include <stdio.h>main(){ int a,max=0;scanf("%d",&a);while( ){ if(max<a) max=a;scanf("%d",&a);}printf("%d\n",max);}A. a==0B. aC.!a==1D. !a24.设char *s="\ta\017bc";则指针变量s指向的字符串所占的字节数是A. 9B. 5C. 6D. 725.在说明一个联合体变量时,系统分配给它的存储空间是A. 该联合体中第一个成员需存储空间B. 该联合体中最后一个成员所需存储空间C. 该联合体中占用最大存储空间的成员所需存储空间D. 该联合体中所有成员所需存储空间的总和二、填空题(共10题,每题1分,共10分)请按照试题中对应的标号顺序填写到答题表中1.一个C源程序中至少包括一个。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟试题二一.选择填空(选择一个正确答案,将其对应字母填在横线上)(25分)1.C程序中,unsigned int x;定义的变量取值范围为;A:0~255 B:0~65535 C:0~32767 D:0~21474836472.C语言中,正确的字符与字符串表示方式为;A: char a=…a‟,b=“abc”;B:char a=…a‟,b[]= “abc”;C: char a=“a”,b[]=“abc”;D:char a=…a‟,b[2]= “abc”;3.若a是float型变量,b是int型变量,以下输入语句合法的是;A:scanf(“%6f%f”,&a,&b) B:scanf(“%8f%d”,&a,&b)C:scanf(“%6d%d”,&a,&d) D:scanf(“%6f%c”,&a,&d)4.如果i=1,执行j=++i;k=i++;其j、i和k的值是;A:2,2,2; B:1,2,3 ; C:1,1,1; D:2,3,25.在if(条件)语句执行时,当条件为时C语言认为是“真”;A:TRUE; B:. T . C:0 D:非零值6.如果int a[4]={1,2,3,4},*p=&a[2];执行p++;其*p+a[0]的值为;A:2B:3 C:4 D:57.设int a,b,c; 且a=10;b=4;a/=b;则表达式(a/b?b+a:b-a)之值是;A:0. 5 B:6; C:2;D:-28.对于int a[10];正确的赋值语句是__;A:*(a+2)=4;B:a=6;C:a+2=4;D:*(a+15)=4;9.设int x,a,b,c;计算表达式x=(a=4,b=16,c=32)后,x的值是;A:4B:16C:32D:5210.对于int a[ ][3]={1,2,3,4,5,6, 7, 8, 9,10}说明语句,且有:数据元素a[1][2]+a[3][1]的值为_________;A:15 B:16C:8 D:611.int n=97;switch(n/10-4){ case 2: n=n+1;case 3: n=n*2;case 5: n=n-2;case 7: n=n+3;break;default: n=n/2;}n的正确结果值是________A:95B:96C:97D:9812.已知int i=j=2; char *a="abcdefg", c;执行c=*(a=a+3);c的值是__________。

A.‘b’ B:‘c’ C:‘d’D:‘e’13.阅读下列程序,结果是main(){ int a=5,b=0,c=0;if(a=b+c) printf("***\n");else printf("###\n");}A:语法有错误,不能编译B:输出 ***C:通过编译,但不能连接D:输出 ### 14.for( ;3; );代表的意义是;A:死循环 B:不循环 C:循环3次 D:语法错误15.对于表达式53/2&&!0和!(15>3||5<6-8)的逻辑值,分别是;A:0,1 B:1,0 C:0,0; D:1,116.有时需要使几种不同类型的变量存放到在一起,形成一个变量,这种变量,称为;A:结构体变量B:字符变量 C:整型变量 D:实数变量17.设char w; int x; float y; double z;表达式w*x+z-y的值的数据类型为A:char B:int C:float D:double18.有以下程序段CFILE *fp;fp=fopen(“a1”,“r”);其表示为A:定义了一个普通指针,函数值给指针赋值。

B:定义了一个文件a1C:打开一个文件,该文件可读可写D:打开一个文件,该文件只能读不能写19.下面对数组的定义正确的是A:int n=10; int array[n]; B:int array(10);C:int n; scanf(“%d”,&n); int array[n];D:int n; int array[n]; scanf(“%s”,array);20.下面各语句行中,能正确进行赋字符串操作的语句行是A:char s[4][5]="abcd","123";B:char s[5]={…a‟,…b‟,…c‟,…e‟,…f‟};C:char *s; s="abcd";D:char s[5]; s="abcd";21. 在一个C语言程序构成中,较完整的描述是A:由主程序与子程序构成B:由多个主函数与多个子函数构成C:由主函数与子函数构成 D:由一个主函数与多个子函数构成22.C语言在程序开始执行时,其正确的描述是A:由编写程序语句的顺序格式执行B:在主函数main()开始处执行C:在第一个子函数处执行 D:由人随机选择执行23. 下列有关函数错误的描述是A: C语言中允许函数嵌套定义B: C语言中允许函数递归调用C:调用函数时,实参与形参的个数、类型需完全一致D: C语言函数的缺省数据类型是int类型24. 在C语言中,函数的返回值的类型是由A: 在程序编译时决定 B: 由调用该函数的主调函数所决定C: 由return的表达式的类型所决定 D: 由定义该函数时指定的函数类型所决定25.当调用函数时,如果实参是一个数组名,则向函数传送的是A: 数组的首元素 B:数组的首地址C: 数组每个元素的地址 D:数组每个元素中的值二.读下列程序,给出程序的运行结果(30分)1.main(){ int i,j,m,n;i=5; j=6; n=10;m=++i; n/=j++;printf(“m1=%d n1=%d”,m,n);m=i++; n=++j;printf(“m2=%d n2=%d”,m,n);}结果:m1=n1=m2=n2=2.main(){ int a[20],b=1;for (a[0]=b;b<=10;b+=2){ a[b]=b;if (b>7) break;b++; }printf(“a=%d”,a[b]);}结果:a=3.#include “stdio.h”main ( ){char ch;scanf("%c",&ch);if(ch>=‟B‟ && ch<‟M‟) putchar (ch+32);else putchar(ch);}输入M,运行结果为:______;输入b,运行结果为:______4.main (){ int a[3][3]={1,2,3,4,5,6,7,8,9};int *p1=&a[1][2],*p2=a+2; printf("%d, %d\n",*p1, *p2);printf("%d, %d\n", *(++p2), a[2][2]);}输出为:5.main ( ){ int i;char *p,b[10];p=“abcde”;for(i=0;i<3;i++){ b[i]=*p; p++; }b[i]= '\0';printf(“%s”,b);}输出为:b=6.#include "stdio.h"int fun(int x){int y=0;static z=3;y++;z++;return (x+y+z);}main(){int a=2,i;for(i=0;i<3;i++)printf("\t%d", fun(a);}结果为:。

三.填空题(25分)1.如果p是一个指针,那么*&p表示的含义是,而&*p表示的含义是。

2.已知数组s为一有8个单元的整型数组,下面的语句的语句试图求出这8个单元的平均值,并用ave保存这个值;请补充完整下面的语句。

int j,s[ ]={1,2,3,4,5,6,7,8},sum= ;for( ; ; j++) ;ave= /8;3.变量在程序使用中,其作用域可分为变量和变量。

4.打印如下图案,选择合适的句子填入该程序空格中。

0 0 00 0 0 0 00 0 0 0 0 0 00 0 0 0 00 0 0#include<stdio.h>void a(int i){ int j,k;for (j=0;j<7-i;j++) printf(“ ”);for (k=0;________;k++) printf(“0”);printf(“\n”);}main(){ int i;for (i=0;i<3;i++) _________;for (i=3;i>=0;i--) _________;}5.用选择法对数组为n个整数进行由大到小排序,选择合适的句子填入该空格中。

#defin N 100main(){ int i,a[N],n;scanf("%d",&n);void sort(int array[] , int n);for(i=0;i<n;i++)scanf("%d",&a[i]);sort( a, );printf("the sorted array:\n);for(i=0;i<15;i++)printf("%d",a[i]);}void sort(, int n){ int i,j,k,t;for(i=0;i<n-1;i++){ k=i;for(j=i+1;j<n;j++)if(array[j]>array[k] k=;t=array[k];array[k]=array[i];array[i]=t;}}6. 下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数,选择合适的句子填入该程序空格中。

main(){ int a[5],max,min,i,j,k;for (i=0;i<5;i++)scanf(“%d”,&a[i]);min=a[0];for (i=1;i<5;i++)if (a[i]<min) { min=a[i]; _______ ;}max=a[0];for (i=1;i<5;i++)if (a[i]>max) { max=a[i];________ ;}___________printf(“\nThe position of min is:%3d\n”,k);printf(“The position of max is:%3d\n”,j);for (i=1;i<5;i++)printf(“%5d\n”,a[i]);}四.编写程序(20分)1.通过键盘输入10整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中。

相关文档
最新文档