C语言试题3

合集下载

C语言程序设计单元测试题三

C语言程序设计单元测试题三

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语言试题及答案
试题一:变量和数据类型
1.请简要解释变量在C语言中的作用。

答:变量在C语言中用于存储数据,可以通过变量名来访问和修改存储的数据。

变量的作用是方便程序处理
数据、保存中间结果,以及实现算法和逻辑。

2.C语言中的基本数据类型有哪些?
答:C语言中的基本数据类型包括整型、浮点型、
字符型和空类型(void)。

具体的基本数据类型有:char、int、float、double和void等。

试题二:运算符和表达式
1.请简要解释赋值运算符的作用。

答:赋值运算符(=)用于将右侧表达式的值赋给
左侧操作数(变量)。

它的作用是将一个值存储到一个变
量中,使得该变量可以在程序中进行后续的操作和计算。

2.C语言中的逻辑运算符有哪些?
答:C语言中的逻辑运算符有与运算(&&)、或运算(||)和非运算(!)。

逻辑运算符用于连接多个条件,判断多个条件之间的关系并返回结果。

试题三:条件语句和循环语句
1.请解释C语言中的条件语句if-else的用法,并举例说明。

答:条件语句if-else用于根据给定的条件选择不同的执行路径。

如果条件为真(非零),则执行if语句块中的代码;否则执行else语句块中的代码。

以下是一个简单的例子:
```c int num = 10;
if (num > 0) { printf(。

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)??? 。

7-8-C语言上机考试试题3

7-8-C语言上机考试试题3

C语言上机考试试题-3一、选择题(评分标准 20 分,每小题2分)1. 以下选项中可作为C语言合法常量的是________。

(A) -80. ( B) -080 (C) (D)2. 以下叙述中正确的是________。

(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)有相同作用的是_______。

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语言习题级答案3

C语言习题级答案3

测试题31.C语言中不合法的字符常量是 CA、’\65’B、’\xff’C、’\028’D、’&’2.具有相同类型的指针变量p与数组a,不能进行的操作是(C)。

A、p=&a[0];B、p=a;C、p=&a;D、*p=a[0];3.若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果是(B )z=x>y?x:yA、72B、26C、48D、224.对于建立函数的目的,正确的说法是DA、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性5.有定义:char*p1,*p2;则下列表达式中正确合理的是CA、p1/=5B、p1+=5C、p1=&p2D、p1*=p26.以下程序的运行结果是(B)。

main(){int i=1,sum=0;while(i<10) sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A、i=10,sum=9B、运行出现错误C、i=2,sum=17.若变量已正确定义且k 的值是4,计算表达式( j =4, k--) 后,j和k的值为(C)A、j=4, k=4B、j=3, k=3C、j=4, k=3D、j=3, k=48.给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为(A)A、数组x的长度大于数组y的长度B、数组x和数组y等价C、数组x和数组y的长度相同D、数组x的长度小于数组y的长度9.在下述程序中,判断i > j共执行了多少次 C#include <stdio.h>main(){int i = 0, j = 10, k = 2, s = 0;for( ; ; ){i += k;if(i > j){printf(“%d\n”, s);break;}s += i;}}A、4B、8C、6D、710.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(D)。

C语言练习3(数组)=参考解答

C语言练习3(数组)=参考解答

C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={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[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).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("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。

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. 有如下的程序段,其输出正确的____________ 。

2024年3月青少年软件编程C语言等级考试试卷三级真题

2024年3月青少年软件编程C语言等级考试试卷三级真题

2024年3月青少年软件编程C语言等级考试试卷三级真题分数:100 题数:5一、编程题(共5题,共100分)1.我家的门牌号我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。

若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。

数据保证有唯一解。

时间限制:1000内存限制:65536输入一个正整数n。

n < 100000。

输出一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。

样例输入样例输出试题编号:20240323-3-01试题类型:编程题标准答案:试题难度:一般试题解析:展示地址:点击浏览考生答案:#include<iostream>using namespace std;int main(){int a;cin>>a;for(int i=1;i<100000;i++){for(int j=1;j<=i;j++){if((i+1)*i/2-j*2==a){cout<<j<<' '<<i;return 0;}}}}考生得分:20是否评分:已评分评价描述:2.最接近的分数分母不超过N 且小于A/B 的最大最简分数是多少?时间限制:10000内存限制:65536输入三个正整数N,A,B,相邻两个数之间用单个空格隔开。

1 <= A < B < N <= 1000。

输出两个正整数,分别是所求分数的分子和分母,中间用单个空格隔开。

样例输入样例输出试题编号:20240323-3-02试题类型:编程题标准答案:试题难度:一般试题解析:展示地址:点击浏览考生答案:(此题已作答)考生得分:0是否评分:已评分评价描述:3.菲波那契数列菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。

给出一个正整数a,要求菲波那契数列中第a个数对10000取模的结果是多少。

三级c语言机试题及答案

三级c语言机试题及答案

三级c语言机试题及答案三级C语言机试题及答案1. 以下哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释*/答案:A2. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 以下哪个选项是C语言中正确的字符串声明方式?A. char str[] = "Hello World";B. char str[] = 'Hello World';C. char str[] = {"Hello World"};D. char str[] = "Hello World";答案:A4. 在C语言中,以下哪个函数用于将字符串转换成浮点数?A. atoi()B. atof()C. itoa()D. sprintf()答案:B5. 以下哪个选项是C语言中正确的数组初始化方式?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[5] = {0};C. int arr[5] = {0, 1, 2};D. int arr[5] = {0, 1, 2, 3};答案:A6. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. funcD. int答案:D7. 以下哪个选项是C语言中正确的文件包含指令?A. #include "stdio.h"B. include "stdio.h"C. #import "stdio.h"D. #include <stdio.h>答案:D8. 在C语言中,以下哪个运算符用于执行按位与操作?A. &&B. &&C. &D. ||答案:C9. 以下哪个选项是C语言中正确的单行if语句?A. if (x > y) x = y;B. if (x > y) { x = y; }C. if (x > y) x = y; else y = x;D. if (x > y) { x = y; } else { y = x; }答案:A10. 在C语言中,以下哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C。

计算机应用类专业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语言程序设计考试试卷3

湖北汽车工业学院C语言程序设计考试试卷3

湖北汽车工业学院C语言程序设计考试试卷3一、填空题(每小空1分,共20分)1.C语言程序的三种基本结构是、、。

2.一个C程序中务必有函数,不管该函数在整个程序中的位置如何,C程序总是从该函数开始执行。

3.C语言中没有逻辑型数据,在给出逻辑运算结果时,以代表“真”,以代表“假”。

4.为了避免嵌套的条件语句if-else的二义性,C语言规定else与if配对。

5.数组名作为参数传递给函数,作为实参的数组名被处理为该数组的。

6.静态变量与外部变量的初始化是在阶段完成的,而自动变量的初始化是在时进行的。

7.C语言中构造类型数据有、与。

8.void的用途有三个:①说明的函数;②在函数的参数表中写void,表示函数;③说明void型指针,它是一个指针,可被任何类型的指针赋值,也能够赋给任何类型的指针而不需强制转换。

9.C语言中能够用来实现循环的四种语句是、、、。

二、阅读填空(每小空2分,共26分)1.已知i=5,写出下列语句执行后整型变量i与a的值。

①a=i++;(a= ) ②i+=012;(i= ) ③i*=i+1;(i= )④a=(i>5)?0:1;(a= ) ⑤a= (a=i+1,a+2,a+3);(a= )2.执行下列语句后,*(p+2)的值是。

char s[3]=“ab”,*p;p=s;3.下列程序的功能是将字符串“Turbo C”纵向显示在屏幕上,请填空。

main( ){ char *p=“Turbo C”;for(;*p!=‘\0’; )printf(“%c\n”, );}4.下列程序计算1到100的整数的累加与。

main(){ int i,_______;for(__________________) sum+=i;printf(“sum=%d\n”,sum);}5.下列程序中maxmin()的作用是求整型数组a的最大元素与最小元素。

main(){ static x[3][3]={{1,2,3},{9,5,6},{-1,0,3}};int m1,m2;maxmin( );printf(“max=%d,min=%d\n”,m1,m2);}maxmin(int n,int a[][3],int *max,int *min){ int i,j;*max=*min=a[0][0];for(i=0;i<n;i++)for(j=0;j<n;j++)if( ) *max=a[i][j];else if( ) *min=a[i][j];}三、单项选择题(每小题2分,共36分)1.下列形式的常数中,C程序不同意出现的是_____。

c语言上机试题库及答案

c语言上机试题库及答案

c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。

```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。

```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。

C语言期末考试试卷及答案3

C语言期末考试试卷及答案3

一、单项选择题(本大题共20小题,每小题1分,共20分)1.下列说法正确的是()A.C程序可以从任何一个函数开始执行B.main函数可以被其它函数调用C.一个C程序只能有一个main函数D.main函数中不能有形参2.下列属于正确的标示符是()A.?aB.a=2C.a.3D.a_33.下列数据中属于“字符串常量”的是A.ABCB.“ABC”C.‘abc’D.‘a’4.char型常量在内存中存放的是()A.ASCII代码B.BCD代码C.内码D.十进制代码5.设字符型变量a=3,b=6,计算表达式c=(a^b)<<2后c的二进制值是()A.00011100B.00000111C.00000001D.000101006.若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c的值的类型为()A.floatB.intC.charD.double7.以下程序的输出结果是a=5,b=4,则输入数据的形式应该是()#include“stdio.h”main(){int a,b;scanf("%d,b=%d",&a,&b);printf("a=%d,b=%d",a,b);}A54B5,4C5b=4D5,b=48.C语言中,while和do…while循环的主要区别是()A.while的循环控制条件比do…while的循环控制条件严格B.do…while的循环体至少无条件执行一次C.do…while允许从外部转到循环体内D.do…while的循环体不能是复合语句9.循环语句for(x=0,y=0;(y!=123)||(x<4);x++);的循环执行()A.无限次B.不确定次数C.4次D.3次10.在C语言中,设有数组定义char array[]="China";则array所占的空间为()A.4个字节B.5个字节C.6个字节D.7个字节11.若变量已正确说明为int类型,要通过语句scanf(“%d%d%d”,&a,&b,&c);给a,b,c分别赋值3,5,8,不正确的输入形式是()A.3<enter>B.3,5,8<enter>5<enter>8<enter>C.3<enter>D.35<enter>58<enter>812.char*p="happy new year";char*q=p;int k;for(k=1;k<8;k++){putchar(*q);q++;}上面C程序段的输出结果是()A.happy new yearB.happy newC.happy nD.happyE.appy n13.设double*p[5];则A.p是指向double型变量的指针B.p是double型数组C.p是指针数组,其元素是指向double型变量的指针D.p是数组指针,指向double型数组14.两个指针变量不可以()A.相加B比较C相减D指向同一地址15.对C语言函数描述正确的是A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传回给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.函数必须有返回值,返回值类型不定16.设有如下定义,则对data中的a成员的正确引用是()struct test{int a;float b;}data,*p=&data;A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a17.有如下程序(提示:注意宏替换的规则)#define N2#define M N+1#define NUM2*M+1#main(){int i;for(i=1;i<=NUM;i++)printf(“%d\n”,i);}该程序中的for循环执行的次数是()A.5B.6C.7D.818.若有以下定义,则printf(“%d\n”,sizeof(them));的输出是()typedef union{long x[2];int y[4];char z[8];}MYTYPE;MYTYPE them;A.32B.16C.8D.2419.下列语句中,将c定义为文件型指针的是()A.FILE c;B.FILE*c;C.file c;D.file*c;20.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件B.文件由二进制数据序列组成,C语言只能读写二进制文件C.文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件二、填空题(本大题共10小题,每小题2分,共20分)1.在定义变量的同时给变量赋予初值就称为___________________________________ 2.下面程序段的输出结果是___________________________________________ int a=28;a=a&21;printf(“%d%o\n”,a,a);3.能正确表示0≤a≤10的逻辑表达式是_________________________________4.若有定义int a[3],*p;则使p指向数组a的赋值语句是_______________________ 5.strcmp函数的功能是________________________________________6.写出数学式a acbbx24 2-+-=的C语言表达式________________________________ 7.将以下程序写成三目运算符的表达式是____________________________________if(a>b)max=a;else max=b8.设有定义如下:#define F(N)2*N,则表达式F(2+3)的值是_____________________. 9.在C语言中,指针运算符为___________________,取地址运算符________________。

C语言期末考试试卷及答案3

C语言期末考试试卷及答案3

一、单项选择题(本大题共20小题,每小题1分,共20分)1.下列说法正确的是()A.C程序可以从任何一个函数开始执行B.main函数可以被其它函数调用C.一个C程序只能有一个main函数D.main函数中不能有形参2.下列属于正确的标示符是()A.?aB.a=2C.a.3D.a_33.下列数据中属于“字符串常量”的是A.ABCB.“ABC”C.‘abc’D.‘a’4.char型常量在内存中存放的是()A.ASCII代码B.BCD代码C.内码D.十进制代码5.设字符型变量a=3,b=6,计算表达式c=(a^b)<<2后c的二进制值是()A.00011100B.00000111C.00000001D.000101006.若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c的值的类型为()A.floatB.intC.charD.double7.以下程序的输出结果是a=5,b=4,则输入数据的形式应该是()#include“stdio.h”main(){int a,b;scanf("%d,b=%d",&a,&b);printf("a=%d,b=%d",a,b);}A54B5,4C5b=4D5,b=48.C语言中,while和do…while循环的主要区别是()A.while的循环控制条件比do…while的循环控制条件严格B.do…while的循环体至少无条件执行一次C.do…while允许从外部转到循环体内D.do…while的循环体不能是复合语句9.循环语句for(x=0,y=0;(y!=123)||(x<4);x++);的循环执行()A.无限次B.不确定次数C.4次D.3次10.在C语言中,设有数组定义char array[]="China";则array所占的空间为()A.4个字节B.5个字节C.6个字节D.7个字节11.若变量已正确说明为int类型,要通过语句scanf(“%d%d%d”,&a,&b,&c);给a,b,c分别赋值3,5,8,不正确的输入形式是()A.3<enter>B.3,5,8<enter>5<enter>8<enter>C.3<enter>D.35<enter>58<enter>812.char*p="happy new year";char*q=p;int k;for(k=1;k<8;k++){putchar(*q);q++;}上面C程序段的输出结果是()A.happy new yearB.happy newC.happy nD.happyE.appy n13.设double*p[5];则A.p是指向double型变量的指针B.p是double型数组C.p是指针数组,其元素是指向double型变量的指针D.p是数组指针,指向double型数组14.两个指针变量不可以()A.相加B比较C相减D指向同一地址15.对C语言函数描述正确的是A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传回给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.函数必须有返回值,返回值类型不定16.设有如下定义,则对data中的a成员的正确引用是()struct test{int a;float b;}data,*p=&data;A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a17.有如下程序(提示:注意宏替换的规则)#define N2#define M N+1#define NUM2*M+1#main(){int i;for(i=1;i<=NUM;i++)printf(“%d\n”,i);}该程序中的for循环执行的次数是()A.5B.6C.7D.818.若有以下定义,则printf(“%d\n”,sizeof(them));的输出是()typedef union{long x[2];int y[4];char z[8];}MYTYPE;MYTYPE them;A.32B.16C.8D.2419.下列语句中,将c定义为文件型指针的是()A.FILE c;B.FILE*c;C.file c;D.file*c;20.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件B.文件由二进制数据序列组成,C语言只能读写二进制文件C.文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件二、填空题(本大题共10小题,每小题2分,共20分)1.在定义变量的同时给变量赋予初值就称为___________________________________ 2.下面程序段的输出结果是___________________________________________ int a=28;a=a&21;printf(“%d%o\n”,a,a);3.能正确表示0≤a≤10的逻辑表达式是_________________________________4.若有定义int a[3],*p;则使p指向数组a的赋值语句是_______________________ 5.strcmp函数的功能是________________________________________6.写出数学式a acbbx24 2-+-=的C语言表达式________________________________ 7.将以下程序写成三目运算符的表达式是____________________________________if(a>b)max=a;else max=b8.设有定义如下:#define F(N)2*N,则表达式F(2+3)的值是_____________________. 9.在C语言中,指针运算符为___________________,取地址运算符________________。

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

C语言试题及答案3
p1=&b[0] ;p2=&b[1]; p=p1; p1=p1+1; p2=p; } void main() { int a[]={5,9}; printf("%d,%d\n",*a,*(a+1)); swap(a);
printf("%d,%d\n",a[0],a[1]); } 5,9 15. #include <stdio.h> int b=3; int fun(int *a) { b+=*a;
for(y=1,x=1; y<=20;y++) { if(x>=8) break;
if(x%2==1){ x+=5; continue ; } x-=3; } printf("x=%d, y=%d\n",x,y);
第 5页
} 运行结果:x=8,y=4 7. #include <stdio.h>
void main() { char x[]="language";
A)5 11 B)1 9 C)5 9 D)有错误
15. 已知 char b[5],*p=b; ,则正确的赋值语句是
A)b=“abcd” ; B)*b=“abcd”; C) p=“abcd”; D)*p=“abcd”;
16. 用数组名作为函数调用时的实参,则实际传递给形参的是
A)数组的第一个元素值
B)数组中全部元素值
5.#include <stdio.h> void main() { int x=3,y=4; int j; for(j=1 ; y>0 ; y -- ) j=j*x; printf(“j=%d\n”,j); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

(其中a为一整型变量)
A.3+4*5 B.a==10 C.a>0?a:-a D.a=1
4.下列对一维数组的声明正确的是:()
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._exam
6.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为。

A.float B char C int D double
7.已知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=7
C)x=6,y=5,z=5D)x=6,y=7,z=6
8.执行int a=8;a+=a*a;语句后,a的值是______。

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

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

A.占据同一内存单元。

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

C.是两个空指针。

D.都没有指向。

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

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

12.C语言中,定义PI为一个符号常量,正确的是______
A.#Define PI3.14 B.#define PI3.14
C.#define PI=3.14
D.Include PI3.14
13.为表示关系x≥y≥z,应使用C语言表达式
A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z)
C.(x>=y>=z) D.(x>=z)&(y>=z)
14.执行语句:for(i=1;i<4;i++){;}后,变量i的值是。

A)3B)4C)5D)不定
15.对以下说明语句的正确理解是_________。

int a[10]={3,4,5,6,7};
A)将5个初值依次赋给a[1]至a[5]
B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确
16.C语言规定,函数返回值的类型是由__________。

A)return语句中的表达式类型决定
B)调用该函数时的主调函数决定
C)调用该函数时系统临时决定
D)在定义该函数
时所定义的函数类型决定
17.若有int a[5],*p=a;定义,则对a[3]元素赋值15的正确表达式是___。

A.&a[3]=15 B.*(p+3)=15 C.a(3)=15 D.*p=15
18.下列程序段while循环的次数是()。

int i=0;
while(i=1)i++;
A.0次B.1次C.2次D.无限次
19.按升序对a[]={23,45,71,65,1}排序,第一次冒泡排序结束时,()将冒到顶部。

A.23B.45C.1D.71
20.下面的程序
main()
{int x=3;
do{printf(“%d\n”,x-=2);}while(!--x));}
A.输出的是1
B.输出的是1和-2
C.输出的是3和0
D.是死循环
二、补全程序题(每空3分,共24分)
1.下列程序段是从键盘输入两个整型数,输出其中
大者(较小者)。

main()
{int a,b;
Scanf("%d%d",&a,&b);
if(【a>b】)
printf("max=%d",a);
else
printf("max=%d",【b】);}
一、选择题(每小题2分,共40分)
1~5:ABBDA6~10:DBCCB11~15:ABACB16~20:DBDCB
二、补全程序题(每空3分,共24分)
1.a>b b
一、填空题(每空1分,共20分)
1.C源程序的基本单位是【函数】。

2.在一个C源程序中,注释用的分界符是【//】或【/**/】。

3.结构化程序设计的基本结构是【顺序】、【分支】、【循环】。

4.一元二次方程ax2+bx+c=0的判别式的C语言表达式为【b*b-4*a*c】。

5.已知:char a='a',b='b',c='c',i;(已知a的ASCII码值为97)则表达式i=a+b+c的值为【294】。

6.C语言中,指针运算符有【&】和【*】两个。

7.C语言提供三种逻辑运算符,按优先级高低它们分别是【!】、【&&】和【||】。

8.C语言三个循环语句分别是【do while】语句,【while】语句和【for】语句。

9.若有定义:double x[3][5],则x数组中行下标的下限为【0】,列下标的上限为【】4,此数组共有【15】个元素。

1.函数
2.//;/**/
3.顺序;分支(条件);循环
4.b*b-4*a*c
5.294
6.&;*
7.!;&&;||
8.while;do while;for
9.0;4;15
10.strcopy(s1,s2);
一、填空题(每空1分,共30分)
1.C语言程序的开发流程大致是:【编辑】à【编译】à【链接】à【运行】。

2.在VC++环境中,C源程序的扩展名是【。

cpp】,目标文件与【源程序】同名、扩展名为.obj。

3.C语言程序的结构包括三部分:【注释】、【预处理指令】和【函数定义】。

4.变量的二要素是【变量值】和【变量名】。

5.在C语言中,标识符只能由【字母】、【数字】和【下划线】组成,且首字符必须是【字母和下划线】。

6.一个C源程序至少应该包含一个【main函数】。

7.梯形的面积公式的C语言表达式为【0.5*(a+b)*h】。

8.C语言中,指针运算符有【&】和【*】两个。

9.复合语句是用一对【{}】界定的语句块。

10.在C语言中,标准输入操作的库函数是由【scanf()】完成的,标准输出操作的库函数是由【printf()】完成的。

一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:【#include<stdio.h>】。

11.C语言提供三种逻辑运算符,按优先级高低它们分别是【!】、【&&】和【||】。

12.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式【(y%4==0&&y%100!=0)||(y%400==0)】。

13.在C语言中,二维数组的元素在内存中的存放顺序是【从上到下,从左到右】。

14.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为【0】,a[2][1]的值为【6】。

1.编辑;编译;链接;运行
2..cpp;源程序
3.注释;预处理命令;函数定义
4.变量名;变量值
5.字母;数字;下划线;字母或下划线
6.main函数
7.0.5*(a+b)*h
8.&;*
9.{}
10.scanf();printf();#include<stdio.h>
11.!;&&;||
12.(y%4==0&&y%100!=0)||(y%400==0)
13.从上到下,从左到右
14.0;6。

相关文档
最新文档