收藏 分销(赏)

C语言五邑大学高潮练习6答案(2).doc

上传人:快乐****生活 文档编号:4683263 上传时间:2024-10-09 格式:DOC 页数:14 大小:99.51KB
下载 相关 举报
C语言五邑大学高潮练习6答案(2).doc_第1页
第1页 / 共14页
C语言五邑大学高潮练习6答案(2).doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述
试卷号:TSheet1 一、选择题 1、C语言源程序文件的扩展名一般为______ 。 (A) .txt (B) .c (C) .obj (D) .exe 2、以下选项中合法的用户标识符是_____ 。 (A) long (B) _2Test (C) 3Dmax (D) A.dat 3、以下选项中,_____ 不是C语言的保留字(关键字)。 (A) printf (B) short (C) if (D) sizeof 4、下列选项中合法的变量名是_____ 。 (A) x(1) (B) y.1 (C) 3y (D) _xyz 5、下面各选项中,属于非法的C语言整型常量的是_____ 。 (A) 01 (B) 0x11 (C) 081 (D) -32765 6、以下不合法的常量是_____ 。 (A) 2.7 (B) 1.0E+3 (C) 3.5E-3.0 (D) 3.4e-5 7、下列字符常量的写法中,正确的是_____ 。 (A) '\082' (B) "ab" (C) '\t' (D) '\4f ' 8、下列各组中全是字符串常量的是_____ 。 (A) '123' , "456" , "789" (B) 'abc' , 'xyz' , '5' (C) "a+b" , "1+2=5" , "china" (D) '\n' , "1+2=3" , "aaa" 9、已知字符A的ASCII码是65,字符a的ASCII码是97,则'\101'表示的字符常量是____ 。 (A) 字符A (B) 字符B (C) 字符e (D) 非法常量 10、在C语言中,char型数据在内存中的存储形式是_____ 。 (A) 原码 (B) 反码 (C) 补码 (D) ASCII码 11、sizeof(float) 是_____ 。 (A) 一个双精度型表达式 (B) 一个整型表达式 (C) 一种函数调用 (D) 一个不合法的表达式 12、以下能正确地定义整型变量a,b,c,并给它们都赋值5的语句是_____ 。 (A) int a=b=c=5; (B) int a,b,c=5; (C) int a=5,b=5,c=5; (D) a=b=c=5; 13、以下各组运算符的优先级按由高到低的顺序排列正确的是_____ 。 (A) *=、&&、!=、% (B) *=、%、&&、!= (C) %、!=、&&、*= (D) &&、!=、%、= 14、已知a、b为整型,z为实型,ch为字符型,下列表达式中合法的是____ 。 (A) z=(a+b)++ (B) a+b=z (C) b=ch+a (D) b=z%a 15、设char ch; 则不合法的赋值语句是____ 。 (A) ch='a+b'; (B) ch='\0'; (C) ch='a'+'b'; (D) ch=7+9; 16、若有定义int x;则经过表达式x=(float)2/3运算后,x的值为_____ 。 (A) 2.0 (B) 0 (C) 2 (D) 1 17、若有int x=13,y=5; 则表达式 x++, y+=2, x/y的值为____ 。 (A) 1 (B) 2 (C) 0 (D) 13 18、逻辑运算符两侧运算对象的数据类型_____ 。 (A) 只能是0或1 (B) 只能是0或非0数 (C) 只能是整型或字符型数据 (D) 可以是任何类型的数据 19、设整型变量m、n、a、b、c、d的值均为1,表达式(m=a>b)&&(n=c>b)运算后,m、n的值是____ 。 (A) 0,0 (B) 0,1 (C) 1,0 (D) 1,1 20、以下为非法操作的是_____ 。 (A) int i ; i=100 ; (B) int i=100 ; (C) const int i ; i=100 ; (D) const int i=100 ; 21、C语言源程序文件代码经编译后生成的目标文件,其扩展名为_____ 。 (A) .txt (B) .c (C) .obj (D) .exe 22、C语言源程序文件代码经编译后生成目标文件,对目标文件进行连接后生成可执行文件,其生成的可执行文件的扩展名为_____ 。 (A) .txt (B) .c (C) .obj (D) .exe 二、填空题 1、C语言程序书写格式规定,每行可写____语句,一个语句可以_____ 。 2、一条C语言的语句至少应包含一个_____。 3、用____ 对C语言程序中的任何部分作注释。 4、运用C语言实现一个基本程序的过程,包括编写源程序、_____、连接、运行(调试)。 5、设有说明:char c1; 则 c1='a'; 是否正确?(回答"是"或"否") ______ 6、设有说明:char c2;则 c2=65; 是否正确?(回答"是"或"否") ______ 7、char c ; 表达式 c='a'- 'A'+'B' 运算后,c的值为______ 。 8、表达式 10+'x'+2.5*7 的值为______型的量。 9、表达式 x= (2+3, 6*5) , x+5 运算后,x的值为______ 。 10、设 a=5 ; 则表达式 a+=a*=a+a 运算后,a的值为______ 。 11、设int a=7 ; double x=2.5,y=4.7 ; 则表达式x+a%3*(int)(x+y)%2/4的值为_____ 。 12、把数学表达式x+y≠a+b写成C语言表达式:___________ 。 13、条件"2<x<3或x<-10"的C语言表达式是________ 。 14、设int i=32,j=1,k=3;则表达式!i||(j-k)&&i&&!(k-3||i*k)的值为____ 。 15、设int x,y,z; 则执行语句x=(y=(z=10)+5)-5;后,x值为___ ,y值为___ ,z值为___ 。 16、表达式 (int)(sqrt(0.25)+5.7) 运算后, 其值为______ 。 试卷号:TSheet2 一、选择题 1、为了避免在嵌套的条件语句if-else中产生二义性,C语言中规定的if-else匹配原则是____ 。 (A) else子句与其之前未配对的if配对 (B) else子句与其之前未配对的最近的if配对 (C) else子句与其之后最近的if配对 (D) else子句与同一行上的if配对 2、对于switch(c)中的变量c不能定义为____ 类型。 (A) unsigned (B) int (C) char (D) float 3、下列关于switch语句的描述中,正确的是_____ 。 (A) switch语句中default子句只能放在最后 (B) switch语句中case子句后面的表达式可以是整型表达式 (C) switch语句中每个语句序列中必须有break语句 (D) switch语句中default子句可以没有,也可有一个 4、下面叙述正确的是____ 。 (A) for循环只能用于循环次数已经确定的情况 (B) for循环同do while语句一样,先执行循环体再判断 (C) 不管哪种形式的循环语句,都可以从循环体内转到循环体外 (D) for循环体内不可以出现while语句 5、下面程序段运行后,a、b、c的值是_____ 。 a=1; b=2; c=2; while (a<b<c) { t=a; a=b; b=t; c--;} printf("%d,%d,%d",a,b,c); (A) 1, 2, 0 (B) 2, 1, 0 (C) 1, 2, 1 (D) 2, 1, 1 6、以下程序段的输出结果为____ 。 int i=0, s=0; do{ if(i%2){i++;continue;} i++; s+=i; } while(i<7); printf("%d\n",s); (A) 16 (B) 12 (C) 28 (D) 21 7、以下for循环体执行的次数是_____。 for (x=0,y=0; (y=123) && (x<4);x++); (A) 为无限次循环 (B) 循环次数不定 (C) 4次 (D) 3次 8、以下程序段的输出结果为_____ 。 for(i=4;i<=10;i++) { if(i%3==0) continue; printf("%d", i ); } (A) 45 (B) 457810 (C) 69 (D) 678910 9、下列不是死循环的是____ 。 (A) int i=100;while(1){ i=i%100+1;if (i>100) break;} (B) for ( ; ;); (C) int k=0; do {++k;} while (k>=0) ; (D) int s=36;while (s);--s; 二、填空题 1、以下程序段的运行结果是_____ 。 int x=1, y=0; switch (x) { case 1: switch (y) { case 0: printf("**1**"); break; case 1: printf("**2**"); break; } case 2: printf("**3**"); } 2、执行下面程序段后,k值是____ 。 k=1;n=263; do { k*=n%10;n/=10;} while(n); 3、鸡兔共有30只,脚共有90个,下面的程序段是计算鸡兔各有多少只。 for ( x=1;x<=29;x++ ) { y=30-x; if ( ________ ) printf("%d , %d\n", x , y); } 4、下面程序段的运行结果是 ______ 。 int i,j=4; for(i=j;i<=2*j;i++) switch(i/j) { case 0: case 1: printf("**");break; case 2: printf("#"); } 5、以下程序段的功能:从键盘输入的字符中统计数字字符的个数(n),用"#"结束循环。 int n=0; char c; while( ______ ) if( ______ ) n++; 6、填空完成下面程序,其功能是打印100以内个位数为6且能被3整除的所有数。 int i,j; for( i=0;_______ ;i++) { j=i*10+6; if ( _______ ) continue; printf("%d\n", j); } 7、填空完成下面程序,其功能是从3个红球,5个白球,6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案。 int i, j, k ; printf("red\twhite\tblack\n"); for(i=0; i<=3; i++) for( _____ ; j<=5; j++) { k=8-i-j; if( _____ ) printf("%d\t%d\t%d\n", i, j, k); } 1、一个C语言源程序至少包含一个且只能包含一个_______函数。 (A) MAIN( ) (B) main( ) (C) open( ) (D) close( ) 2、一个C语言源程序一般包含有许多函数,其中main()函数的位置_______。 (A) 必须在最开始 (B) 必须在最后 (C) 既可以在最开始也可以在最后 (D) 可以任意 3、对于C语言程序的函数,下列叙述中正确的是_________。 (A) 函数的定义不能嵌套,但函数的调用可以嵌套 (B) 函数的定义和调用均不能嵌套 (C) 函数的定义可以嵌套,但函数的调用不能嵌套 (D) 函数的定义和调用可以嵌套 4、函数声明中不包括下面哪一项?_______。 (A) 函数类型 (B) 函数名 (C) 函数参数的类型和参数名 (D) 函数体 5、以下不正确的说法是___________。 (A) 在不同函数中可以使用相同名字的变量 (B) 形式参数是局部变量 (C) 在函数内定义的变量只在本函数范围内有效 (D) 在函数内的复合语句中定义的变量在本函数范围内有效 6、当一个函数无返回值时,函数的类型应定义为___________。 (A) int (B) void (C) 无 (D) 任意 7、在C语言中函数返回值的类型是___________。 (A) 由调用该函数时系统临时决定的 (B) 由return语句中的表达式类型决定的 (C) 由定义该函数时所指定的函数类型决定的 (D) 由调用该函数时的主调函数类型决定的 8、下列叙述中,错误的是___________。 (A) 一个函数中可以有多条return语句 (B) 函数调用执行到return语句即意味着函数调用结束 (C) 函数调用必须在一条独立的语句中完成 (D) 函数通过return语句返回其函数值 9、在函数中未指定存储类型的变量,其隐含存储类型为__________。 (A) 静态(static) (B) 自动(auto) (C) 外部(extern) (D) 存储器(register) 二、填空题 1、一个函数由_____________和_____________两部分组成 2、函数体一般包括_______语句和______语句。 3、C语言程序的执行是从________函数开始,在_________函数中结束。 4、一个C语言源程序一般包含有许多函数,其中main()函数是程序执行的入口,所以在整个程序中它必须定义在所有的函数之前。以上叙述是否正确?(回答"是"或"否") _______ 5、调用其他函数的函数称为________函数,被其他函数调用的函数称为________函数。 6、从变量存在的时间(即生存期)角度来分,可以分为______存储方式和______存储方式。 7、下面add函数的功能是求两个参数的和,并将值返回调用函数。函数中错误部分是__________,改正后为_____________。 void add(float a,float b) { float c; c=a+b; return c; } 8、以下程序的运行结果是_____________________。 void fun(int i,int j) { int x=7; printf("#i=%d,j=%d,x=%d",i, j, x); } int main() { int i=2, x=5, j=7; fun(j,6); printf("#i=%d,j=%d,x=%d",i, j, x); return 0; } 答案:#i=7,j=6,x=7#i=2,j=7,x=5 9、以下程序中的isLeap()是判断闰年的函数。请填空。 int main() { int year; _____________ printf("Please input year:\n"); scanf("%d", &year); if( _______________ ) printf("%d is a leap year.\n", year); else printf("%d is not a leap year.\n", year); return 0; } ______ isLeap(int year) { return ( year%4==0&&year%100!=0||year%400==0 ); } 答案:int isLeap(int); isLeap(year) int @int isLeap(int year); isLeap(year) int 10、已有函数pow(): double pow(int x,int y) { int i,j=1; for(i=1;i<=y;++i) j=j*x; return (j); } 现要求取消变量i后pow函数的功能不变,请填空。 double pow(int x,int y) { int j; for(__________;__________;__________) j=j*x; return (j); } 11、[程序] void myswap(int a, int b) { int t; if(a>b) t=a, a=b, b=t; } int main() { int x=15, y=12, z=20; if(x>y) myswap(x,y); if(x>z) myswap(x,z); if(y>z) myswap(y,z); printf("%d, %d, %d", x, y, z); //程序的输出为_________________ return 0; } 12、以下程序的运行结果是_________。 int func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } int main() { int k=4,m=1,p; p=func(k,m); printf("%d", p); p=func(k,m); printf("%d", p); return 0; } 试卷号:TSheet4 一、选择题 1、在C语言中,定义数组长度时,其"元素个数"允许的表示方式是 _______。 (A) 整型常量 (B) 整型表达式 (C) 整型常量或整型表达式 (D) 任何类型的表达式 2、如下数组定义语句正确的是_______。 (A) int a[3,4]; (B) int m=3, n=4, int a[m][n]; (C) int a[3][4]; (D) int a(3)(4); 3、若有说明:int a[10];则对a 数组元素的正确引用是 _______。 (A) a[10] (B) a[3.5] (C) a (D) a[10-10] 4、以下不能对二维数组a初始化的语句是_______。 (A) int a[2][3]={1,2,3,4,5,6} ; (B) int a[2][]={{1},{2}}; (C) int a[2][3]={1}; (D) int a[][3]={3,4,5,6,7,8}; 5、以下不正确的字符串赋初值的方式是______。 (A) char str[ ] = {'s','t','r','i','n','g','\0'}; (B) char str[7] = {'s','t','r','i','n','g'}; (C) char str1[10]; str1 = "string"; (D) char str1[ ] = "string", str2[ ] = "12345678"; 6、以下程序段的输出结果是_______。 char sp[ ]="\x69\082\n"; printf("%d", strlen(sp)); (A) 3 (B) 5 (C) 1 (D) 字符串中有非法字符,输出值不定 二、填空题 1、程序: int main( ) { int a[4], x, i; for(i=1;i<=3;i++) a[i]=0; scanf("%d", &x); while(x!=-1) {a[x]+=1; scanf("%d", &x); } for(i=1;i<=3;i++) printf("a[%d]=%d ", i, a[i]); return 0; } 若输入数据如下: 3 1 2 3 2 2 2 1 1 3 3 3 3 3 1 1 2 2 3 2 1 2 3 2 -1 <Enter> 输出结果是_____________________。 2、给a数组输入10,8,6,4,2共5个数,放在a[1]到a[5]中,请阅读程序,回答: 若给x输入5,以下程序的输出结果是________。 int main( ) { int a[80], x, i, n; printf("Enter n: "); scanf("%d", &n); for(i=1;i<=n;i++) scanf("%d", &a[i]); printf("Enter x: "); scanf("%d", &x); a[0]=x; i=n; while(x>a[i]) {a[i+1]=a[i]; i--;} a[i+1]=x; n++; for(i=1;i<=n;i++) printf("%d ", a[i]); return 0; } 3、以下程序的输出结果是__________。 int main( ) { char str[]="SSSWILTECH1\1\11W\1WALLMP1"; int k; char c; for(k=2; (c=str[k])!='\0'; k++) { switch (c) { case 'A' : putchar('a'); continue; case '1' : break; case 1 : while((c=str[++k])!='\1'&&c!='\0'); case 9 : putchar('#'); case 'E' : case 'L' : continue; default : putchar(c); continue; } putchar('*'); } putchar('\n'); return 0; } 试卷号:TSheet5 一、选择题 1、执行完下列3条语句后,c指向______。 int a,b,*c=&a; int * p=c; p=&b; (A) p (B) c (C) b (D) a 2、下列程序是要对两个整型变量的值进行交换。以下正确的说法是_____。 int myswap(int p, int q) { int t; t=p; p=q; q=t;} int main() { int a=10, b=20; myswap(&a,&b); return 0; } (A) 该程序完全正确 (B) 该程序有错,只要将语句myswap(&a, &b); 中的参数改为a,b即可 (C) 该程序有错,只要将myswap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可 (D) 以上说法都不正确 3、若已定义:char s[10]; 则在下面表达式中不表示s[1]的地址的是_____。 (A) s+1 (B) s++ (C) &s[0]+1 (D) &s[1] 4、下面程序段中, for循环的执行次数是 _____。 char *s="\ta\018bc"; for( ; *s!='\0'; s++) printf("*"); (A) 9 (B) 5 (C) 6 (D) 7 5、以下不正确的字符串赋初值的方式是______。 (A) char *str = "string"; (B) char *str; str = "string"; (C) char str[ ] = {'s','t','r','i','n','g'}; (D) char str[7] = {'s','t','r','i','n','g'}; 二、填空题 1、若有以下定义和语句:int a[4]={0,10,20,30}, *p; p=&a[1]; 则++(*p)的值是________。 2、若有以下定义和语句:int a[4]={0,10,20,30},*p; p=&a[2]; 则*--p的值是________。 3、设a数组中的数据已按由小到大的顺序存放,以下程序可把a数组中相同的数据删得只剩一个。请填空。 int delmore(int a[], int m) //m为有序数组a的长度 { int i,j,n; n=i=m-1; while(i>0) { if(*(a+i)==*(a+i-1)) { for(j= __________ ; j<=n; j++) *(a+j-1)= *( _________ ); n--; } i--; } return n+1; //返回无重复数据的新的有序数组a的长度 } 4、运行以下程序,从键盘上依次输入book<Enter>和book!<Enter>后,则该程序段的运行结果是_____ 。 char a1[80], a2[80],*s1=a1,*s2=a2; scanf("%s%s",a1,s2); if( !strcmp(s1,s2) ) printf("*"); else printf("#"); printf("%d", strlen(strcat(sl,s2)); 5、下面程序的功能是将两个字符串连接起来。请填空。 char *conj(char *p1,char *p2) { char *p=p1; while(*p1)_____________________ ; while (*p2) {*p1=____________ ; p1++ ; p2++ ;} *p1='\0'; ______________________ ; } 6、下列程序的输出结果是______ int main() { int n; int fun(char *s1,char*s2); char *p1,*p2; p1="abcxyz"; p2="abcwdj"; n=fun(p1,p2); printf("%d\n", n); return 0; } int fun(char *s1,char*s2) { while(*s1&&*s2&&*s2++==*s1++); return *(--s1)-*(--s2); } 一、选择题 1、下列字符序列中,可以作为变量名的是_____。 (A) C++ (B) _DAY (C) 123abc (D) a b c 2、结构化程序设计的基本结构不包含________。 (A) 顺序 (B) 选择 (C) 跳转 (D) 循环 3、下列叙述正确的是_______。 (A) C程序由函数构成 (B) C程序由函数和过程组成 (C) C程序由主函数组成 (D) 在C程序中无论整数还是实数,只要在允许的范围内都能正确无误地表示。 4、C语言中允许的基本数据类型包括______。 (A) 整型、实型、逻辑型 (B) 整型、实型、字符型 (C) 整型、字符型、逻辑型 (D) 整型、实型、逻辑型、字符型 5、一个C程序的执行是从______。 (A) 本程序的main函数开始,到main函数结束 (B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (C) 本程序的main函数开始,到本程序文件的最后一个函数结束 (D) 本程序文件的第一个函数开始,到本程序main函数结束 6、C语言规定,不同类型的数据占用存储空间的长度是不同的。下列数据类型中,满足占用存储空间从小到大顺序排列的是______。 (A) short int , char , float , double (B) char , float , int , double (C) int , unsigned char , long int , float (D) char , short int , foat , double 7、合法的C语言字符常数是______。 (A) '\97' (B) "A" (C) '\t' (D) "\0" 8、正确表示a不等于0关系的表达式是________。 (A) a<>0 (B) !a (C) a= =0 (D) a 9、设有程序段 int k=10; while ( k = 0 ) k = k - 1 ; 以下描述正确的是__________。 (A) 循环体语句一次也不执行。 (B) 循环是无限循环。 (C) while循环语句执行十次。 (D) 循环体语句执行一次。 10、若有以下定义:char s[]="\0187654321\\"; 则s所占的内存空间为______。 (A) 1个字节 (B) 12个字节 (C) 11个字节 (D) 10个字节 二、填空题 1、若有说明语句:char c='\101';则变量c包含_____个字符。 2、若有 int k=5 ; float f ; 则表达式 k=56+f 的数据类型为_______。 3、若有 int x=30 , y=20 ; 则表达式5.0+x/y的值为______。 4、若有 int a=10 , b=9 , c; 则在计算表达式c=(a%11)+(b=3),c+=2后,变量c的值为______。 5、结束本次循环进入下轮循环用______语句进行控制。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服