2013年c语言试卷(带答案版)
湖北科技学院2013学年春季学期2012级非计算机本科专业《高级语言程序设计(C语言)》期末考试试卷(A卷、闭卷)一.选择题:(每小题1分,共40分)1.C语言规定,必须用( C )作为主函数名。
A) Function B) include C) main D) stdio2.下列说法正确的是( C )。
A) 在执行C程序时不是从main 函数开始的B) C程序书写格式严格限制,一行内必须写一个语句C) C程序书写格式自由,一个语句可以分写在多行上D) C程序书写格式严格限制,一行内必须写一个语句,并要有行号3.下列字符串是用户标识符的是( A )。
A) _HJ B) 9_student C) long D) float4.下列数据中是合法的整型常量的是( C )。
A) 3E2 B) 029 C) -32768 D) 6e+0075.语句int k,i=3;k=(i++)+(i++)+(i++);执行过后k和i的值分别为( A )。
A) 9,6 B) 12,5 C) 18,6 D) 15,56.10+‟a‟+1.5-567.345/‟b‟的结果是( B )型数据。
A) long B) double C) int D) unsigned float7.在C 语言中,下列类型属于构造类型的是( D )。
A) 整型B) 指针类型C) 实型D) 结构体类型8.在C语言中,退格符是( D )。
A) \n B) \t C) \v D) \b9.下列符号中,可以作为变量名的是( C )。
A) +c B) *X C) _DAY D) next-day10.以下程序的输出结果是( B )。
void main(){ unsigned char a=2,b=4,c=5,d;d=a|b; d&=c;printf("%d\n",d); }A) 3 B) 4 C) 5 D) 611.若已知a=5,b=10,则表达式a==b的值为( D )。
A) 10 B) 20 C) 1 D) 012.已有定义” int a=-2; ”和输出语句” printf( “%8x”, a );“,以下正确的叙述是( D )。
A) 整型变量的输出形式只有%d一种B) %x是格式控制符的一种,它可以适用于任何一种类型的数据C) %x是格式控制符的一种,其变量的值按十六进制输出,但%8x是错误的D) %8x不是错误的格式控制符,其中数字8规定了输出数据的宽度13. 在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个( A )。
A) 函数B) 文件C) 变量D) 子程序14.语句int x=10, y=20, z=30;if (x>y) z=x; x=y; y=z; 执行后x、y、z的值是( B )。
A) x=10,y=20,z=30 B) x=20,y=30,z=30C) x=20,y=30,z=10 D) x=20,y=30,z=2015.在C的if语句中,可用作条件的表达式是( D )。
A) 关系表达式B) 逻辑表达式C) 算术表达式D) 任意表达式16.以下for循环是( D )。
for(a=0,b=0;( b!=123)&&(a<=4);a++ )A) 无限循环B) 循环次数不定C) 执行4次D) 执行5次17.以下程序段( C )。
x= -1; do { x=x *x; } while( !x );A) 是死循环B) 循环执行二次C) 循环执行一次D) 有语法错误18.程序段如下int k=0; while( k++<=2 ) printf ( "%d\n", k );则执行结果是( A )。
A) 1 B) 2 C) 0 D)无结果2 3 13 4 219.以下能正确计算1×2×3×…×10的程序段是( C )。
A) do {i=1;s=1; s=s*i; i++; } while(i<=10);B) do {i=1;s=0; s=s*i; i++; } while(i<=10);C) i=1; s=1; do {s=s*i; i++; } while(i<=10);D) i=1; s=0; do {s=s*i; i++; } while(i<=10);20.若有定义:int a[10]; ,则数组a元素的正确引用是( D )。
A) a [10] B) [3.5] C) a(5) D) a [10-10]21.设有char str[10],下列语句正确的是( D )。
A) scanf("%s",&str); B) printf("%c",str); C) printf("%s",str[0]); D) printf("%s",str); 22.若有如下定义: int a[3][3]={ {1,2,9},{3,4,8},{5,6,7} }, i , s=0 ; 则下列语句的输出结果是( A )。
for ( i=0; i<3; i++) s+=a[ i ] [ i ]+a[ i ][ 3-i-1 ]; printf( “%d\n”,s );A) 30 B) 18 C) 10 D) 1223. 判断字符串s1是否大于字符串s2,应当使用( D )。
A) if (s1>s2) B) if (strcmp(s1,s2))C) if (strcmp(s2,s1)>0) D) if (strcmp(s1,s2)>0)24.若用数组名作为函数调用的实参,传递给形参的是( A )。
A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值D) 数组元素的个数25.有如下函数调用语句func ( rec1,rec2+rec3,( rec4,rec5 )); 该函数调用语句中,含有的实参个数是( A )。
A) 3 B) 4 C) 5 D) 226.在一个源文件中定义的外部变量的作用域为( D )。
A) 本文件的全部范围B) 本程序的全部范围C) 本函数的全部范围D) 从定义该变量的位置开始至本文件结束27.以下函数值的类型是( A )。
fun ( float x ){ float y;y= 3*x-4;return y; }A) int B) 不确定C) void D) float 28.C语言中函数返回值的类型由( D )决定。
A) return语句中表达式类型B) 调用函数的主调函数类型C) 调用函数时的临时类型D) 定义函数时所指定的函数类型29.以下程序的输出结果是( A )。
# define A 3# define B(a) ((A+1)*a)main( ){ int x; x=3*(A+B(7)); printf ( “x=%4d\n”, x ); }A) 93 B) 135 C) 54 D) 25130.下面程序的输出结果是:( B )。
int m=13;int fun( int x, int y ){ int m=3;return( x*y-m); }main( ){int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 7 D) 1031.若有以下定义和语句,则输出结果是( D )。
int **pp, *p, a=10,b=20;pp=&p; p=&a; p=&b; printf( "%d,%d\n",*p, **pp );A) 10,20 B) 10,10 C) 20,10 D) 20,20 32.下面程序段的运行结果是( B )。
char str[ ]=“ABC”, *p= str ;printf ( “%c\n”,*(p+1) );A) 66 B) B C) 字符…B‟的地址D) 字符”B C”33.以下程序的输出结果是( D )。
#include <stdio.h>void main(void){ char a[ ] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, *p = a+5;printf ( “%d”, *--p ); }A) 非法B) a[4]的地址C) 3 D) 534.若有以下定义:int a[10],*p=a; 则﹡(p+5)表示( B )。
A)元素a[5]的地址B)元素a[5]的值C)元素a[6]的地址D)元素a[6]的值35.在说明一个结构体变量时系统分配给它的存储空间是( D )。
A) 该结构体中第一个成员所需存储空间B) 该结构体中最后一个成员所需存储空间C) 该结构体中占用最大存储空间的成员所需存储空间D) 该结构体中所有成员所需存储空间的总和36. 若有以下说明和语句:struct worker{ int no; char *name; }work, *p=&work;则以下引用方式不正确的是(D)。
A.work.no B.(*p).no C.p->no D.work->no37. 若设有以下说明语句,则下面的叙述中不正确的是( B )。
struct ex {int x ; float y; char z ; } example;A) struct是结构体类型的关键字B) example是结构体类型名C) x,y,z都是结构体成员名D) struct ex是结构体类型38. 以下叙述中不正确的是( D )。
A) C语言中的文本文件以ASCII码形式存储数据B) C语言中对二进制位的访问速度比文本文件快C) C语言中,随机读写方式不使用于文本文件D) C语言中,顺序读写方式不使用于二进制文件39. 若用fopen( )函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开模式是( C )。
A) “ab+”B) “wb+”C) “rb+”D) “ab”40.若fp为文件指针,且文件已正确打开,i为long型变量,以下程序段的输出结果是( B )。
fseek( fp, 0, SEEK_END );i=ftell ( fp );printf( "i=%ld\n", i );A) –1 B) fp所指文件的长度,以字节为单位C) 0 D) 2二.填空题:(每空1分,共20分)1.在C语言中,规定标识符只能由字母、数字或下划线组成,且第一个字符必须为字母或下划线。
2.在C语言中,在程序的运行过程中,其值可以发生改变的量叫变量。
2013年C语言与web技术答案
2013年C语言一、单项选择题CCABDDA二、程序阅读题1.GAE82.4;3;13;12;2;1;11;11;1;1;_ _2,03.hijklmnofghijkdefabcdef4.2,6,10,20三、程序填空题1. j+=2 a[i]>a[j] puts2、杨辉三角#include <stdio.h>#define N 11void main(){int i, j,a[N][N]; /*定义二维数组a[11][11]*/for(i=1;i<N;i++)a[i][1] = a[i][i] = 1; /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/for(i=3;i<N;i++)for(j=2;j<=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j]; /*除两边的数外都等于上两顶数之和*/for(i=1;i<N;i++){for(j=1;j<=i;j++) /*j<=i的原因是不输出其它的数,只输出我们想要的数*/printf("%6d",a[i][j]);printf("\n"); /*当一行输出完以后换行继续下一行的输出*/}printf("\n");}四、编写程序题1. 已知D盘根目录有一名为data1.txt的文件,其内容为:包括空格、回车和大/小写英文字母的文件。
请编写完整的C代码程序,去除该文件的所有回车,并将大写英文字母都改写为对应的小写字母,最终,将换好的文件保存在当前目录下一个名为data2.txt的文件中。
#include<stdio.h>int main(){FILE *fin, *fout;fin = fopen("D:\\data1.txt", "r");fout = fopen("D:\\data2.txt", "w");char c;// 重复读入字符,直到到达文件尾while ((c = fgetc(fin)) != EOF){// 如果是回车,不输出直接跳过if (c == '\n')continue;// 如果是大写字母,转换成小写if (c >= 'A' && c <= 'Z')c += 'a' - 'A';// 输出fputc(c, fout);}fclose(fin);fclose(fout);return 0;}2.输出200到50000之间能被3整除,且个位数为6,十位数不为7的所有整数及他们的和#include<stdio.h>int main(){int i,sum=0;for(i=200;i<=50000;i++){if(i%3==0&&i%10==6&&(i/10%10)!=7){printf("%d\t",i);sum=sum+i;}}printf("\n");printf("sum is %d",sum);}Web技术一、选择题BBABDCDDAA二、填空题1.background2.小3.像素(px)百分比4.href5.<tr>6.maxlength7. alert(),confirm(),prompt()8.<option>9.文档头文档体10.submit reset button11.<12.服务类型主机名路径及文件名三、简答题1.红#FF0000黄#FFFF00蓝#0000FF白#FFFFFF黑#0000002. 一个name可以同时对应多个控件,比如checkbox和radio,而id必须是全文档中唯一的。
2013年《C语言程序设计基础》期末考试试卷‘A’及答案
C、&*a
D、*&a
二、填空题(每空 2 分,共 20 分)
16.字符串"a"的占内存长度是
字节。
17. strlen(“apple”)的值为
。
18.根据变量的作用域可将变量分为局部变量和全局变量,定义在
函数内部的变量和函数的形参都是_______ 变量。
19.已知定义:int a[10];
则 VC 编译器中数组 a 占用内存的字节数是___________。
30. 编写程序: 将 10 个学生的成绩由键盘输入存放到数组 x[10] 中,输出其中的最高分和最低分。
第5页共8页
程序设计基础
一、单项选择题(每小题 2 分,共 30 分) 1-5 DDCAB 6-10 ACDCA 11-15 BDBCA
二、填空题(每空 2 分,共 20 分)
16. 2 17. 5 18. 局部 19. 40 20. 9 21. 4 和 216 22. lf 23. 7 24. 25
for( (2) ;i<20;i++)
printf(“%12d”,f[i]);} /* 打印输出数列前20个数*/
(1)
(2) 28.补齐程序,程序功能为:输出100之内的素数。
#include <stdio.h> main() { int n,i;
for (n = 1; n <= 100; n++)
3.以下叙述错误的是(
)。
A、一个C程序可以包含多个不同名的函数
B、一个C程序只能有一个主函数
C、C程序在书写时,有严格的缩进要求,否则不能编译通过
D、C程序的主函数必须用main作为函数名
2013年计算机二级C语言上机题库及答案解析(18)
⽆忧考为⼤家收集整理了《2013年计算机⼆级C语⾔上机题库及答案解析(18)》供⼤家参考,希望对⼤家有所帮助填空题 函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把偶数从数组中删除,奇数个数通过函数值返回。
例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a 所指数组中的数据为:9、1、3、5、7,返回值为5。
请在程序的下划线处填⼊正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考⽣⽂件夹下的BLANK1.C中。
不得增⾏或删⾏,也不得更改程序的结构! 给定源程序: #include #define N 9 int fun(int a[], int n) { int i,j; j = 0; for (i=0; i if (a[i]%2==___1___) { a[j] = a[i]; ___2___; } return ___3___; } main() { int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf("\nThe original data :\n"); for (i=0; i n = fun(b, N); printf("\nThe number of odd : %d \n", n); printf("\nThe odd number :\n"); for (i=0; i } 解题思路: 第⼀处:判断a[i]是否是奇数,若是,则仍保留在原数组中a[j],所以应填:1。
第⼆处:数组a中的元素位置由j来控制,每增加⼀个元素,则j加1,所以应填:j++。
第三处:返回删除偶数后a所指数组中数据的元素j,所以应填:j。
改错题 给定程序MODI1.C中函数fun的功能是:求出两个⾮零正整数的公约数,并作为函数值返回。
沈阳建筑大学C语言2013年试题
一、单项选择题(每小题2分,共40分) 将正确选项涂写在答题纸相应位置上。
1.使用一些图框表示各种类型的操作,其中输出框是_A___A)B)C)D)2.下面程序执行后,输出结果为__B__A)-1,1,0 B)0,1,1 C)0,2,1 D)0,2,0main(){ int a=-1,b=1,c;c=a++||++b;printf("%d,%d,%d\n",a,b,c);}3.在下列标识符中,哪个是不合法的__A__A)a+b B)_321 C)max D)name4.设int型的数据长度为2个字节,则unsigned int型数据的取值范围是__B__A)0~28-1 B)0~216-1 C)-215~215-1 D)-28~28-15.以下叙述正确的是__C__A)在C程序中,可以有两个以上的main函数。
B)在编译C程序时,可发现注释中的拼写错误。
C)C程序的每行可以书写多条语句。
C)scanf和printf是C语言提供的输入输出语句。
6.正确的赋值语句是_A___A)a=2+(b=1);B)a=+b=3 C)a=b=c D)y=int(x)7.下列程序的运行结果是__C__A)10 B)2*5=10 C)a*b=10 D)2*5=a*b#include〈stdio.h〉main(){ int a=2 ,b=5 ;printf("a*b=%d\n",a*b);}8.下面程序片段执行后,y的值为__D__A)2 B)0 C)6 D)4int x=2 ,y=0;y=x;if(x<5) y=y+2;x=6;9.以下对C语言函数的描述中,正确的是_A___A)调用函数时,参数可以是表达式B)函数的定义可以是嵌套C)函数必须有返回值D)所有函数必须在同一个程序文件中定义10.在C 语言中,函数返回值的类型由__D__决定。
A)调用函数时临时决定B)return语句中的表达式类型C)调用函数的主调函数类型D)定义函数时所指定的函数类型11.以下程序的输出结果是_D___A)10 B)11 C)12 D)13#define MA(x) x*(x+3)main(){ int a=1,b=2;printf("%d\n",MA(a+b));}12.正确的数组定义是__A__A)char a[ ]={'A','B','C','\0'};B)int a[3]={1,2,3,4,5};C)char a="ABC\0"; D)int a[ ] ="ABC";13.设有数组定义:float a[ ]={1,2,3,4,5};则数组a所占的内存空间为_B___ A)10个字节B)20个字节C)30个字节D)4014.设有数组定义:int a[ 3];则正确的赋值为__C__A)a[3]=5;B)a=1,2,3; C)a[0]=3;D)a={1,2,3};15.下列程序执行后的输出结果是(B )A)abcd0you B)abcd C)you D)abcdeyoumain( ){ char arr[10] ="abcde";strcat (arr,"you");arr[4]='\0';printf("%s\n",arr);}16.有如下程序段int *p1,a=10 ,**p2;p1=&a; p2=&p1; **p2=a+10;执行该程序段后,a的值为__B__A)编译出错B)20 C)随机数D)1017.对于基类型相同的两个指针变量,能够进行运算的是__A__A)=B)*C)/ D)+18.设有以下定义:int a[4][5]={1,2,3,4,5,,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};int (*p)[5]=a;则下列能够正确表示数组元素a[2][3]的表达式是__C__A)*((*p+3)[2]) B)*(*(*p+6)) C)*(*(a+2)+3) D)*(*p+2)+319.下列程序的输出结果是__B__A)3 B)4 C)5 D)6struct abc{ int a,b; };main( ){ struct abc x[2]={ {1,2},{3,4}};int t;t=x[0].a*x[1].b;printf("%d\n",t);}20.对于C语言的文件,正确的结论是__A__A)文件操作必须先打开文件B)文件的存取只能是随机方式C)文件又由数据行组成D)只能处理二进制文件二、填空题(1~5题,每空2分,6~7题,每空3分,共25分)1.设有以下变量定义,并已赋确定的值char w; int x; float y; double z;则表达式:w*x +z-y所求值的数据类型位double 。
2013年下半年浙江省C语言理论试卷
2013年下半年浙江省高等学校计算机等级考试二级C程序设计试卷一、程序阅读与填空(24小题,每小题3分同,共72分)1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】输入一个正整数n,再输入n个整数,输出最小值。
运行示例:enter:n:6Enter 6 integer:8 -9 3 6 0 10Min:-9【程序】#include <stdio.h>main(){int i,min,n,x;printf("enter:n:");scanf("%d",&n);printf("Enter %d integer:",n);scanf("%d",&x);(1) B ;for( (2) C ;i<n;i++){(3) D ;if( (4)D )min=x;}printf("Min:%d\n",min);}【供选择的答案】(1)A.min=-9 B.min=xC.min=n D.min=0(2)A.i=0 B.i=-1C.i=1 D.i=n(3)A.scanf(“%d”,&min); B.;C.scanf(“%d”,& n);D.scanf(“%d”,&x);(4)A.min<x B.min>nC.min<n D.min>x2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】输入一组(5个)有序的整数,再输入一个整数x,把x插入到这组数据中,使该数组仍然有序。
运行示例:Enter 5 integer:1 2 4 5 7Enter x:3After inserted:1 2 3 4 5 7【程序】#include <stdio.h>main(){int i,j,n=5,x,a[10];printf("Enter %d integer:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("Enter x:",n);scanf("%d",&x);for(i=0;i<n;i++){if(x>a[i])(5)C ;j=n-1;while(j>=i){(6)B ;(7)A ;}a[i]=x;break;}if(i==n)a[n]=x;printf("After inserted:");for(i=0;(8) A ;i++)printf("%d ",a[i]);}【供选择的答案】(5)A.break B.a[i]=xC.continue D.x=i(6)A.a[j]=a[j+1] B.a[j+1]=a[j]C.a[i]=a[j] D.a[j]=a[i](7)A.j-- B.j++C.i++ D.i--(8)A.i<n B.i<n+1C.i>j D.i<j3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
2013年计算机二级C语言上机题库及答案解析(10)
填空题 给定程序中已建⽴⼀个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。
函数fun的功能是:把形参x的值放⼊⼀个新结点并插⼊到链表中,插⼊后各结点数据域的值仍保持递增有序。
请在程序的下划线处填⼊正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考⽣⽂件夹下的BLANK1.C中。
不得增⾏或删⾏,也不得更改程序的结构! 给定源程序: #include #include #define N 8 typedef struct list { int data; struct list *next; } SLIST; void fun( SLIST *h, int x) { SLIST *p, *q, *s; s=(SLIST *)malloc(sizeof(SLIST)); s->data=___1___; q=h; p=h->next; while(p!=NULL && x>p->data) { q=___2___; p=p->next; } s->next=p; q->next=___3___; } SLIST *creatlist(int *a) { SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i { q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; p->next=q; p=q; } p->next=0; return h; } void outlist(SLIST *h) { SLIST *p; p=h->next; if (p==NULL) printf("\nThe list is NULL!\n"); else { printf("\nHead"); do { printf("->%d",p->data); p=p->next; } while(p!=NULL); printf("->End\n"); } } main() { SLIST *head; int x; int a[N]={11,12,15,18,19,22,25,29}; head=creatlist(a); printf("\nThe list before inserting:\n"); outlist(head); printf("\nEnter a number : "); scanf("%d",&x); fun(head,x); printf("\nThe list after inserting:\n"); outlist(head); } 解题思路: 本题是要求在⼀个有序的链表中插⼊⼀个数,插⼊后各结点仍然是有序的。
博文2013年3月二级C课堂笔试试卷 - 含答案版
此只作参考答案.如有问题请到博文办公室咨询解答!第 1题:以下C 语言用户标识符中,不合法的是(D )。
A)_1 B)AaBc C)a_b D)a-b 第2题:以下选项中那一组都是合法的常量( B )。
A )-80 ‟\‟ 0x8g -8e1.0 …\b ‟ ′\"′o115 B) -899 …\007‟ 0xfab -.18e-2 …\t ‟ ‟\\‟ .1e0 C) 1,300 056 …\080‟ …\xfab ‟ "\x7G" main(){ char c1,c2; c1=‟A‟+‟8‟-…4‟; c2=‟A‟+‟8‟-…5‟;printf(“%c,%d \n”,c1,c2);}程序运行后的输出结果是( A )A )E,68B )D,69C )E,D D 第4题:有以下定义:int a ;long b ;double x ,y ;以下正确的表达式是 (D )A) y=x+y=x B) a=x!=y ; C) (a*y)%b D) a%(int)(x-y)第5题:以下定义语句中正确的是 ( B )A)int a=b=0 ; B)char A=65+1,b='b';C)float a=1,*b=&a,*c=&b ; D)double a=0.0;b=1.1;第6题:若有定义:double a=22;int i=0,k=18;则不符合C语言规定的赋值语句是( C ) A)a=a++,i++; B)i=(a+k )<=(i+k); C)i=a%11; D)i=!a ; 第7题:设有定义int x=2;以下表达式中,值不为6的是(D ) A) x*=x+1 B) x++,2*x C) x*=(1+x) D)2*x,x+=2 第8题: 表达式3.6-5/2+1.2+5%2的值是(D ) A)4.3 B)4.8 C)3.3 D)3.8 第9题:如有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y,则z 的值为 (B ) A.1.9 B.1 C.2 D.2.4第10题:若有定义语句:int x=10;,则表达式x-=x+x 的值为( B )A )-20B )-10C )0D )10第11题: 表达式:(int)((double)9/2)-(9)%2的值是( B ) A )0 B )3 C )4 D )5第12题:有以下程序 main(){int x,y,z; x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z); }程序运行后的输出结果是____C ___。
c语言 模拟题2013 含答案
一、选择题(每题2分,共30分)1.请选出可用作C语言用户标识符的一组标识符。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof2.若有定义:int m=5; float x=3.9, y=4.7;则表达式x+m%4*(int)(x+y)%5/2的值是。
A.4.9 B.5.4 C.5.9 D.53.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是。
A.if (a) s1 ; else s2;B.if (a= =0) s2; else s1;C.if (a!=0) s1; else s2;D.if (a= =0) s1; else s2;4.设a为整型变量,则表达式10<a<15的值是。
A.0 B.1 C.语法错误 D.根据a的值确定5.程序段如下:则以下说法中正确的是:。
int k=-20;while(k=0) k=k+1;A. while循环执行20次B. 循环是无限循环C. 循环体语句一次也不执行D. 循环体语句执行一次6.若有以下数组说明,则i=10;a[ a[i] ]元素数值是。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.10B.9C.6D.57.以下不能对二维数组a进行正确初始化的语句是。
A. int a[2][3]={0};B. int a[][3]={{1,2},{0}};C. int a[2][3]={{1,2},{3,4},{5,6}};D. int a[][3]={1,2,3,4,5,6}8.以下不能正确赋值的是。
A. char s1[10];s1="test";B. char s2[]={’t’,’e’,’s’,’t’}C. char s3[20]= "test";D. char s4[4]={ ’t’,’e’,’s’,’t’}9.若有以下定义和语句,且0≤i<10则对数组元素的错误引用是。
2013东北大学c语言试题
信息学院2013—2014学年第1学期程序设计基础试题a 装订O(10)若有说明语句:int *p,a;的程序段是______ oA) *p=&a; scanf( “%d” ,p); C)p=&a; scanf( “%d” ,*p);得分则能通过scanf语句正确给输入项读入数据B) *p=&a ; scanf( “%d”,*p);D) p=&a; scanf( “%d” ,p);每题3分共30分(1)下列转义字符中,错误的是______ 。
A) ‘ \0xa5' B) ‘ \031 ' C) ‘ \b ' D) ‘ ”'(2)以下叙述中正确的是______ 。
A)C语言中的数据的类型不同,在内存中占据相同长度的存储单元。
B)C语言中的数据的类型不同,在内存中占据不同长度的存储单元。
C)C语言中的常量是没有类型的。
D)C语言中的数据的类型不同,但取值范围都是相同的。
(3)下列表达式中,值为0的表达式是_______ oA) 3 ! =0 B) 4 ! =3>4 C) 3>4==0 D) 6>5>4⑷ 若有以下定义:int a[3],*p=a ;则&a[2]- p 的值是___________ 。
A) 2 B) 4 C)6 D) 8⑸执行语句for(i=0;i++<4;i++); 后,变量i的值为________________ 。
A) 3 B) 4 C) 5 D) 6⑹已知:int a[3][4];则数组元素a[1][2]的地址不能表达为__________________A) &a[1][2] B ) a[1]+2 C ) *a[1]+2 D ) *(a+1)+2⑺ 在C语言中函数调用时,以下说法正确的是 ____________ oA)实参与其对应的形参各占独立的存储单元;B)实参与其对应的形参共占同一个存储单元;C)只有当实参与其对应的形参同名时才共占同一个存储单元;D)形参是虚拟的,不占存储单元;(8)下列程序段的输出结果是____________ ochar *p1="abcd", *p2="ABCD", str[50]="opq";strcpy(st r+2,strcat(p1+2,p2+1));prin tf("%s",str);A) opabcAB B) abcABq C)ABabcq D)opcdBCD(9)与语句while (!x )等价的语句是_______________ 。
2013年3月份全国计算机等级考试二级C语言_笔试+上机题库(完整版)
.全国计算机等级考试二级C语言笔试+上机题库(全)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图 C)结构图 D)数据流图(2)结构化程序设计主要强调的是A)程序的规模 B)程序的效率 C)程序设计语言的先进性 D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法 B)软件开发工具 C)软件开发费用 D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性 B)关系 C)键 D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并 B)自然连接 C)笛卡尔积 D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b;D)double a=00;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7 (20)有以下程序#include <stdio.h>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++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4}; (25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]); (28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX 是合法的宏定义命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串 B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件 D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#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=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x*x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址 D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
