计算机二级《C语言程序设计》操作题题集
【 程序 1 】 题目 : 写 一个 函数 , 求 一个 字符 串 的 长度 , 在 main 函数 中 输入 字符 串 , 并 输出 其 长度 。 1 . 程序 分析 : 2 . 程序 源 代码 : 以下 是 引用 片段 : main ( ) { intlen ; char * str [ 20 ] ; printf ( " pleaseinputastring : / n " ) ; scanf ( " % s " , str ) ; len = length ( str ) ; printf ( " thestringhas % dcharacters . " , len ) ; } length ( p ) char * p ; { intn ; n = 0 ; while ( * p ! = / 0 ) { n + + ; p + + ; } returnn ; } 【 程序 2 】 题目 : 编写 input ( ) 和 output ( ) 函数 输入 , 输出 5 个 学生 的 数据 记录 。 1 . 程序 分析 : 2 . 程序 源 代码 : 以下 是 引用 片段 : # defineN 5 structstudent { charnum [ 6 ] ; charname [ 8 ] ; intscore [ 4 ] ; } stu [ N ] ; input ( stu ) structstudentstu [ ] ; { inti , j ; for ( i = 0 ; i { printf ( " / npleaseinput % dof % d / n " , i + 1 , N ) ; printf ( " num : " ) ; scanf ( " % s " , stu [ i ] . num ) ; printf ( " name : " ) ; scanf ( " % s " , stu [ i ] . name ) ; for ( j = 0 ; j < 3 ; j + + ) { printf ( " score % d . " , j + 1 ) ; scanf ( " % d " , & stu [ i ] . score [ j ] ) ; } printf ( " / n " ) ; } } print ( stu ) structstudentstu [ ] ; { inti , j ; printf ( " / nNo . NameSco 1 Sco 2 Sco 3 / n " ) ; for ( i = 0 ; i { printf ( " % - 6 s % - 10 s " , stu [ i ] . num , stu [ i ] . name ) ; for ( j = 0 ; j < 3 ; j + + ) printf ( " % - 8d " , stu [ i ] . score [ j ] ) ; printf ( " / n " ) ; } } main ( ) { input ( ) ; print ( ) ; } 【 程序 3 】 题目 : 创建 一个 链表 。 1 . 程序 分析 : 2 . 程序 源 代码 : 以下 是 引用 片段 : / * creatalist * / # include " stdlib . h " # include " stdio . h " structlist { intdata ; structlist * next ; } ; typedefstructlistnode ; typedefnode * link ; voidmain ( ) { linkptr , head ; intnum , i ; ptr = ( link ) malloc ( sizeof ( node ) ) ; ptr = head ; printf ( " pleaseinput 5 numbers = = > / n " ) ; for ( i = 0 ; i < = 4 ; i + + ) { scanf ( " % d " , & num ) ; ptr - > data = num ; ptr - > next = ( link ) malloc ( sizeof ( node ) ) ; if ( i = = 4 ) ptr - > next = NULL ; elseptr = ptr - > next ; } ptr = head ; while ( ptr ! = NULL ) { printf ( " Thevalueis = = > % d / n " , ptr - > data ) ; ptr = ptr - > next ; } } 【 程序 4 】 题目 : 反向 输出 一个 链表 。 1 . 程序 分析 : 2 . 程序 源 代码 : 以下 是 引用 片段 : / * reverseoutputalist * / # include " stdlib . h " # include " stdio . h " structlist { intdata ; structlist * next ; } ; typedefstructlistnode ; typedefnode * link ; voidmain ( ) { linkptr , head , tail ; intnum , i ; tail = ( link ) malloc ( sizeof ( node ) ) ; tail - > next = NULL ; ptr = tail ; printf ( " / npleaseinput 5 data = = > / n " ) ; for ( i = 0 ; i < = 4 ; i + + ) { scanf ( " % d " , & num ) ; ptr - > data = num ; head = ( link ) malloc ( sizeof ( node ) ) ; head - > next = ptr ; ptr = head ; } ptr = ptr - > next ; while ( ptr ! = NULL ) { printf ( " The