AG C语言试题2.doc_第1页
AG C语言试题2.doc_第2页
AG C语言试题2.doc_第3页
AG C语言试题2.doc_第4页
AG C语言试题2.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. 选择题数据类型和表达式 81. 以下选项中不属于C语言的类型的是_。D A. signed short int B. unsigned long int C. unsigned int D. long short2. C语言提供的合法的数据类型关键字是: _。 BA. double B. short C. integer D. char3. 两路选择用_语句实现。 DA. case B. else if C. switch D. ifelse 4. 下列标识中合法的用户标识符为_。A A. year B. long C. 7 x yz D. struct5. 若有说明语句:char c=72;则变量c_。 A A. 包含1个字符 B. 包含2个字符 C. 包含3个字符 D. 说明不合法,c的值不确定6. 下面哪个不是C中的字符常量:_。 C ACB. bC. “C”D. 7.int i;float f;double d;表达式15 + d*f + A - i的值是_类型。 DA float B int C char D double8. 哪个不是C中的有效标示符:_。 AA num-2 B num_2C _num_2D _num_29. 下列语句正确的是:_。 D A 具有静态存储期限的变量具有文件作用域B 在函数内部声明的变量具有外部链接C 具有内部链接的变量都具有静态存储期限D 每个形式参数都具有块作用域10. x是const类型的变量,下列关于x的陈述错误的是:_。 A A 若x是int类型,可以作为switch语句中分支标号的值B 编译器将检查是否对x进行初始化C x遵循和变量一样的作用域规则D x可以是任意类型判断和循环811. 设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是_。 C A. while循环执行10次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次12. 执行语句 for(i=1;i+ )37. 关于指针兼容性的描述,正确的是_. DA 所有指针都是地址,指向不同类型的指针可以互相赋值而无需强制转换。B 如果不同类型的指针互相赋值,C语言使用隐式的强制类型转换C 当指针被强制类型转换时,C语言自动重新格式化数据以映射到正确类型。D 当间接引用一个void指针时,必须进行强制类型转换。38. 关于“指向指针的指针”描述正确的是_. DA 任何指向某个变量的指针B 任何指向相同变变量的两个指针C 任何指向相同类型变量的两个指针D 其内容为另一个指针地址的指针39. 关于指针和数组描述正确的是:_. CA 当ary是一个数组时,*ary和&ary0等价B 当ary是一个数组时,*ary 和*ary0等价C 可以将间接运算符用于数组名,从而引用数据。D 数组名是一个指针变量40. 一个C语言程序总是从_开始执行。 CA.主程序 B.子程序 C.主函数 D.函数2. 填空题 20道题数据类型和表达式 41. 有定义: int a; unsigned int b;假设int型为4个字节。则变量a的取值范围为 ,变量b的取值范围为 。-32768-32767 0-655352. 若用数组名作为函数调用的实参,则实参传递给形参的是 ,而数组中的数据是 传递的。地址 双向3. 在一个C源程序文件中,若要定义一个只允许本文件中所有函数使用的变量,则该变量的存储类别必须是 。 Static4. C语言中,double型数据存储在内存中占 个 字节。float型数据存储在内存中占 个字节。 int型数据存储在内存中占 个字节。 8 4 45. 有定义:int k ;int b;执行k=( ( b=2*3, b*2 ), b+10 ) ; 后,变量k的值是 。 166. 若a = 5 , 当执行语句a - = a + = a * a;后,a的值为 。 07. 下列程序段的输出结果是_ 。 8 16 10 int u=010,v=0x10,w=10; printf(“%d,%d,%dn”,u,v,w);8. 逻辑操作符只有当两个操作数都为true结果才为true。 &或与9. int x= 3;int y = 5;x+y之后,x的值为_,y的值为 _。 4 5 10. int x = 2; int y = 3 ;int z = 2; (x+)+(+y)+(+z)的值是_。 911. int x =369; (x/10)%10的值是_. 6判断和循环 412. int x =0;int y = 0;int z = 1;if(z = 0| x & !y)if(!z) y = 1;else x = 2;执行上述代码后,x的值为 ,y的值为 ,z的值为 。 0 0 113. 有以下代码:int x = 0, y = 0, z= 1;switch(x)case 0: x = 2; y=3;case 1: x = 4;default: y = 3; x = 1; z= 2; 执行上述代码后,x的值为 ,y的值为 ,z的值为 。 1 3 214.int x =0;int y = 0;int z = 1;if(z=z&z=1)if(z&y)y = 1;else x =1 ;执行上述代码后,x的值为 ,y的值为 ,z的值为 。 0 0 1函数 415. fabs (-3.6)的值是_。 3.616. rand()%2+1的值为_和_。1和 2数组 417. 执行下列语句后:char s110;char s210;strcpy(s1,computer);strcpy(s2,science);if(strcmp(s1,s2)0) strcat(s1,s2);else strcat(s2,s1);s1strlen(s1)-6=0;puts(s1);屏幕上输出为:_. computers18. 请分析如下代码:const int N = 10;int a = 1,2,3,4,5,6,7,8,9,10;int* p = &a0;int* q = &aN-1;int tmp;while(pq)tmp = *p;*(p+) = *q;*(q-) = tmp;for(int i = 0; iN;i+)printf(%d ,ai);请输出屏幕上打印内容_. 10 9 8 7 6 5 4 3 2 119. 下面程序的输出是:_. Grinch#include int main(void)char s=Hsjodi;char* p;for(p = s; *p ;p+)-*p;puts(s);return 0;20. 指针 4下面程序的输出是:_. hijkl#include int main(void) char s = HIJKL, *p; for (p = s; *p; p+) *p += 32; puts(s); return 0; 3. 程序填空 15道题 数据类型和表达式 31. 输入一个小写字母,然后输出对应的大写字母的ASCII码。#include int main()char ch;ch = ;printf(“%d”,);getchar()ch - 32循环 32. 计算1+2+3+100(用循环来实现)#include int main(void) int i,sum; sum=0; for(i=1;i=100;i+) sum+=i; printf(“sum=%d”,sum);return 0;i=100或者 i1013. 找出1到1000之间能够被3整除的数#include int main() int i; for(i=1;i=1000;i+) if(i%3=0) printf(“i=%d”,i) return 0;i%3=0函数 34. 下面程序实现两个数的加法,请填空:void add(int x, int y, )*z = x + y;答案: int* z5. 输入两个整数a,b,借助中间变量t交换a,b的值:#include int main()int a;int b;scanf(“%d %d”,&a, &b);int t;_return 0;t = a;a = b;b = t;函数6. 函数power(a,n)返回a的n次方。请完成如下的填空:int power1(int a, int n)int result;if(n=0)return 1;else result= power(a,n-1)*a;return result;1;power(a,n-1)*a;数组 37. 以下程序以每一行输出4个数据的形式输出a数组。#include int main(void)int a20,i;for(i=0;i20;i+) scanf(%d, &ai );for(i=0;i20;i+)if ( i%4=3 ) printf(%3dn,ai);else printf(%3d,ai);printf(n);return 0;&ai i%4=3 指针 38. 下面程序的功能是将一个字符串内容颠倒过来。#include#define N 10int main(void) char strN,k;int i,j;for(i=0;iN;i+) stri=getchar();for(i=0,j=N-1;ij;_ , _)k=stri; ;strj=k;for(i=0;iN;i+)putchar(stri);return 0;i+ j- stri = strj9. 从键盘输入由5个字符组成的单词,判断此单词是不是hello,并显示结果。#include int main(void) char str =h,e,l,l,o; char str15; int i,flag ;for(i=0;i5;i+) str1i = getchar() ;flag=0;for(i=0;i5;i+)if( stri!=str1i )flag=1; break;if(flag) printf(this word is not hello);else printf(this word is hello);return 0;int i,flag ;stri!=str1i10. 计算一个以5*5矩阵的主对角线和次对角线元素的和。#includeint main(void)int a55=1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5;int pri_line=0;int sec_line=0;int i=0,j=0;for(i=0;i5;i+)for(j=0;j5;j+)if ( i = j )pri_line+=aij;if ( i +j = 5 )sec_line+=aij;printf(“The sum of pri_line is:%dn”,pri_line);printf(“The sum of seci_line is:%dn”,sec_line);return 0;i=j i+j =411. 下面函数找出数组a中的的最大值和最小值,n表示数组的大小,请补充完整:#include void max_min(int a,int n,int* max ,int* min);int main(void)int a=1,2,3,4,5;int max1;int min1;max_min(a,5,&max1,&min1);printf(%d %d,max1,min1);return 0;void max_min(int a,int n,int* max,int* min)int i ;*max = *min = a0;for(int i = 1; i*max)*max = ai;if(ai*min)*min = ai;return;*max = *min = a0; *max = ai; *min = ai;12. 统计从终端输入的字符中每个小写字母的个数。用#号作为输入结束标志,请填空。#include #include int main(void ) int num26,i; char c; for(i=0; i26; i+) numi=0; while( != #) /*统计从终端输入的大写字母个数*/ if( isupper(c) numc-97+=1; for(i=0; i26; i+) /*输出大写字母和该字母的个数*/ if(numi) printf(%c:%dn, , numi);return 0; ch = getchar()i+9713. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。#include int main(void)int i,a10,x,flag=0;for(i=0;i10;i+) scanf(%d,&ai);sca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论